2011-05-06 146 views
1

我在Apache的httpd.conf文件中實現了一個PHP auto_prepend_file來密碼保護服務器上的每一頁。我們假設前置文件已被正確編碼和保護。使用auto_prepend_file方法是否存在嚴重的安全風險?我擔心這會導致某種跨腳本攻擊或訪問可能被欺騙。感謝您的幫助:)Apache中auto_prepend_file的安全風險?

在httpd.conf:

php_value auto_prepend_file "path/to/application/auth/include/secure.inc" 

回答

2

只要你的腳本die() s請正確,如果用戶沒有通過驗證(也後header()重定向,非常重要!)沒有根本我可以看到這個問題。

manual不給太多理由擔心或者(重點煤礦):

,如果它被稱爲與需要()函數,所以使用的include_path文件是包括在內。

只是要小心始終使用絕對路徑以避免與相對路徑的毛刺。

,我能想到的唯一攻擊的地方注入.htaccess文件,通過設置

php_value auto_prepend_file none 

取消INI設置的根目錄下,所以你要小心,不要接受的文件名從上傳的文件例如,用戶沒有過濾。

+0

非常感謝! '退出'也會更安全地殺死腳本vs'die()'?我從來沒有考慮過.htaccess攻擊,這是一個很好的想法。 – crockpotveggies 2011-05-06 08:29:30

+0

@DeLonge無關緊要,'exit'和'die'是同義詞。 – 2011-05-06 08:30:13

+0

@DeLonge我添加了一件要小心的事情:確保始終使用前置文件的絕對路徑。 – 2011-05-06 08:32:04

1

我的Apache日誌顯示嘗試訪問我的服務器這樣的一個(IP屏蔽)。

?? ?? ?? ?? - - [10/Sep/2012:05:16:29 +0200]「POST /?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../ ../../../../ ../../../../../../../etc/passwd%00%20-n/?-d%20allow_url_include%3DOn+-d%20auto_prepend_file%3D../ .. /../../../../../../../../../../etc/passwd%00%20-n HTTP/1.1「301 895 」 - 「 「Mozilla/5.0」

這清楚地表明黑客正在使用auto_prepend_file和allow_url_include。