PHP识别文件伪装(文件上传)
导读:收集整理的这篇文章主要介绍了PHP识别文件伪装(文件上传),觉得挺不错的,现在分享给大家,也给大家做个参考。问题:文件上传时候需要验证上传的文件是否合法,文件伪装如何识别?一个简单测试:把txt文件后缀直接改成jpg;上传<!DOCT...
收集整理的这篇文章主要介绍了PHP识别文件伪装(文件上传),觉得挺不错的,现在分享给大家,也给大家做个参考。问题:
文件上传时候需要验证上传的文件是否合法,文件伪装如何识别?
一个简单测试:把txt文件后缀直接改成jpg; 上传
!DOCTYPE htML>
html>
tITle>
test/title>
body>
form enctype="multipart/form-data" action="test.php" method="POST">
!-- MAX_FILE_SIZE must PRecede the file input field -->
input type="hidden" name="MAX_FILE_SIZE" value="102400" />
!-- Name of input element determines name in $_FILES array -->
Send this file: input name="userfile" type="file" />
input type="submit" value="Send File" />
/form>
/body>
/html>
1.通过$_FILES['userfile']['type'];获取文件后缀名;
$data = $_FILES['userfile'];
var_dump($data);
/**结果**//*array(5) {
["name"]=>
string(8) "test.jpg" ["type"]=>
string(10) "image/jpeg" ["tmp_name"]=>
string(26) "/private/VAR/tmp/phpfyE3EC" ["error"]=>
int(0) ["size"]=>
int(19)}
*/没有检测出来;
2.用pathinfo()函数来获取文件路径的信息
$data = $_FILES['userfile'];
// var_dump($data);
var_dump(pathinfo($data['name']));
/**结果**//*array(4) {
["dirname"]=>
string(1) "." ["basename"]=>
string(8) "test.jpg" ["extension"]=>
string(3) "jpg" ["filename"]=>
string(4) "test"}
*/没有检测出来;
3.PHP的扩展fileinfo(需要安装开启)
$data = $_FILES['userfile'];
$filename = $data['tmp_name'];
$finfo = finfo_open(FILEINFO_MIME_TYPE);
//返回 mime 类型。 自 PHP 5.3.0 可用。$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
var_dump($mimetype);
/**结果**///string(10) "text/plain"可!可!可!监测到文件MIME类型并不是一个jpg!
更多相关php知识,请访问php教程!
以上就是PHP识别文件伪装(文件上传)的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: PHP识别文件伪装(文件上传)
本文地址: https://pptw.com/jishu/596188.html
