我不太擅长安全性(基于无知而非故意疏忽),但我已经采取了以下措施来保护此页面:
• 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