我创建了一个简单的页面(使用a script以及Stack的一些帮助和朋友的一些帮助;我对PHP知之甚少)一个简单的页面供当地非盈利出版物供人们上传照片。如何保护PHP图像上传脚本免受攻击?
我不是伟大的安全性(从无知,不是故意疏忽的基础上),但我已经采取了以下措施来保护这个页面:
•PHP脚本设置为只接受.JPG ,.png和.tif文件上传;
•保存表单内容的子文件夹的权限设置为700,保存上传照片的子文件夹的权限设置为700;
•根据文档,我的主机具有以下配置,以确保只有.php文件作为.PHP运行:
<FilesMatch \.php$>
SetHandler php52-fcgi
</FilesMatch>
•我已经把相关的.htaccess文件(主要和保存的内容)文件夹:
RemoveHandler .php
RemoveHandler .inc
RemoveHandler .pl
RemoveHandler .cgi
RemoveHandler .py
RemoveHandler .fcgi
一夜之间,然而,有人发现了这个测试页面,并提交似乎是完全良性的测试消息和小.JPG。这是一个带有非直观URL的私人测试页面,只有我和其他三个人都知道;其他人都没有发送这个测试。
这显然让我担心有些事情会发生,我担心我对安全性不够了解,以确保此页面安全。
有什么明显的我失踪了吗?
用户给出的文件名(在'$ _FILES ['upload'] ['name']')是不可信的,可以很容易地改变。不要检查这些扩展名。如果检查'getimagesize()'是否返回有效结果,请检查mime类型。如果可能,生成你自己的文件名 – MarcDefiant