我创建了一个网站。在本网站上有能力上传图片。 我读了一篇php文章,攻击者可以在GIF图像中间插入PHP代码然后在网站上传这个“邪恶”图像,然后该网站可能会打开安全漏洞 任何朋友都可以提出抵抗这种攻击的想法。
答案 0 :(得分:5)
此链接说明了如何以非常好的细节完成此操作:
我在文章中说的最重要的不是including
或requiring
上传的文件。例如,如果您要上传图片,您可以通过以html显示它们而不是将它们包含在脚本中来获得所需的功能。这将防止其中的任何恶意代码被执行。
如果您正在寻找有关保护文件上传的更多信息,那么本文也很好:http://shiflett.org/articles/file-uploads
作者还有一本关于PHP安全性的书,它也很有用。
关于SO的这个问题也很有用:https://stackoverflow.com/a/4167797/1324019
编辑:很抱歉继续添加链接,但我一直在寻找有用的文章:http://nullcandy.com/php-image-upload-security-how-not-to-do-it/
答案 1 :(得分:2)
解决方案非常简单。
验证所有上传的数据。在您100%确定它不以任何方式恶意之前,不要存储任何东西。
这样做的一种方法是使用getimagesize()
函数。
答案 2 :(得分:0)
您必须跟踪文件的全名。
但要小心:
例如,有人可以创建一个像foo.jpg.asp或php或exe或者其他任何文件的文件。
使用正则表达式正确匹配。