2009-06-06 68 views
2

如何防止訪問某些URL請求的頁面?如何防止訪問某些URL請求的頁面?

如果我在我的webapp根目錄中有form.html, processFrom.php and getResults.php,即使processFrom.php沒有回顯任何內容,我如何通過在URL中輸入來阻止用戶訪問此文件?

回答

10

想必您只能通過include聲明或類似語句訪問它?你最安全的選擇是把它放在你的文件系統的其他地方,並從那裏包含它。

任何不是由Web服務器提供的服務都不應該保留在Web根目錄下。

0

當您使用Apache Web服務器時,我會建議創建一個.htaccess文件並拒絕訪問該文件。

這些鏈接應該可以幫助您設置需要的.htaccess文件。

http://httpd.apache.org/docs/2.2/mod/core.html#files

例的.htaccess:

<Files processFrom.php> 
Order allow,deny 
Deny from all 
</Files> 
2

現有的答案假設processForm.php只包含代碼,是不是在你的表單的「動作」屬性指定的頁面。如果這個假設不正確,我會回答,假設你想讓這個頁面直接處理你的表單生成的POST請求,但是你想阻止任何人意外或惡意地在這個文件中運行代碼。

在這種情況下,您無法按照建議隱藏文件。相反,您可以使用在表單顯示時存儲並存儲在會話變量中並使用表單提交的令牌(< input type =「hidden」.../>)。在processForm.php中進行任何處理之前,請檢查該令牌是否存在並與會話變量中的令牌匹配。另外,您應該始終清理所有表單輸入。只要網絡可訪問,就不會有人提交任何他們想要的腳本。

相關問題