我創建了一個簡單的頁面(使用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