PHP-php如何控制上传图片的真实性?

发布于 2017-01-30 16:07:13 字数 214 浏览 1199 评论 1

可能重复的问题
【讨论】如何用PHP提取文件的扩展名并判断文件类型是否正确?

php如何控制用户上传的图片是真实的。不仅仅是后缀名的验证?例如:有的是含有代码的文件只改了后缀是图片的。对于这种情况改如何处理

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-09-16 01:05:02

你这个属于解决文件上传漏洞,主要分为两大类:
一类是没有对上传格式做很好的限制,比如linux环境下上传个php的木马,过滤方法不能使用排除法,因为有些扩展名是不能预料到的。如.php3,.php4也可以当做php网页来执行。要限制住只能使用某某扩展名,比如".JPG"、".BMP"、".GIF"。而且要再服务端做校验,不要紧紧用客户端脚本,因为可以修改发送的封包的,把封包中的muma.php.JPG修改为muma.php。
一类是网页嵌入图片时,没有使用<IMG>标签链接图像地址,而是把图片内容包含在网页中,这样就可以构造恶意的图片内容来搞破坏了,比如:

GIF89a
<head> <meta http-equiv = "refresh" content = "1; url=http://www.hacker.com/" />. 
</head>

访问这个网页会加载图片,就跳到挂有木马的http://www.hacker.com/ 网站了。
也可以使用一律把文件生成缩略图快照的方法,两类上传漏洞都防住了。
另外,想验证图片的真实性,你可以看下 @【讨论】如何用PHP提取文件的扩展名并判断文件类型是否正确? 这个贴。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文