我正在製作一個網站,人們可以在其中將文件上傳到特定的子目錄。以防萬一有人能夠繞過過濾器來上傳潛在的惡意(可能是php)文件,我想知道是否有可能使惡意代碼無法訪問。我正在看2種不同的方法。使用.htaccess禁用子目錄php/access
第一個是看看是否有辦法讓它成爲你無法通過在瀏覽器中輸入文件url(www.example.com/images/blahblah.jpg)來訪問子目錄中的任何文件,但通過<img src=images/blahblah.jpg />
鏈接時,文件仍然正常顯示第二種方法可以通過.htaccess文件禁用子目錄中的php。我試過php_admin_flag engine off
,
php_flag engine off
,
RemoveHandler .php RemoveType .php php_flag engine off Options -ExecCGI
但每次嘗試要麼什麼也不做,或在目錄中禁用一切。有沒有這些不起作用的原因?什麼是禁用PHP或使用.htaccess保護目錄的最佳方法?
爲什麼你不只是保護你的上傳系統,所以它不會允許文件不在白名單上傳?如果他們上傳.pl或.py會怎麼樣?你也不能限制對直接URL的訪問,同時仍然允許SRC訪問該URL,服務器沒有簡單的方法知道哪個是哪個URL。 –
我通過文件擴展名和類型過濾掉文件來保護我的上傳系統,但是這對於保護網站來說是相對較新的,我儘可能保持謹慎。有沒有其他方法來保護上傳系統? – Hat
在SO上發佈上傳代碼和PHP專家將有機會進行同行評審。 = O) –