如何阻止访问某些URL请求的页面?
如果我的webapp根目录中有form.html, processFrom.php and getResults.php
,即使processFrom.php
没有回显任何内容,如何通过输入网址来阻止用户访问此文件?
答案 0 :(得分:10)
据推测,您只能通过include
声明或类似声明访问它?你最安全的赌注是把它放在你文件系统的其他地方,并从那里包含它。
Web服务器未提供的任何内容都不应保留在Web根目录下。
答案 1 :(得分:2)
现有答案假设processForm.php仅包含代码,而不是表单“action”属性中指定的页面。如果这个假设不正确,我会回答假设您希望此页面直接处理您的表单生成的POST请求,但是您希望阻止任何人意外或恶意地在此文件中运行代码。
在这种情况下,您无法按建议隐藏文件。相反,您可以使用在显示表单时创建的令牌,存储在会话变量中,也可以使用表单(< input type =“hidden”... />)提交。在processForm.php中执行任何处理之前,检查令牌是否存在并与会话变量中的令牌匹配。此外,您应该始终清理所有表单输入。只要可以通过网络访问,就不会停止有人向你的脚本提交他们想要的东西。
答案 2 :(得分: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>