【发布时间】:2009-06-06 21:09:43
【问题描述】:
如何防止访问某些 URL 请求的页面?
如果我的 webapp 根目录中有 form.html, processFrom.php and getResults.php,即使 processFrom.php 不回显任何内容,我如何才能阻止用户通过输入 URL 来访问此文件?
【问题讨论】:
标签: php javascript
如何防止访问某些 URL 请求的页面?
如果我的 webapp 根目录中有 form.html, processFrom.php and getResults.php,即使 processFrom.php 不回显任何内容,我如何才能阻止用户通过输入 URL 来访问此文件?
【问题讨论】:
标签: php javascript
大概您只能通过include 语句或类似语句访问它?最安全的选择是将它放在文件系统的其他位置,然后从那里包含它。
Web 服务器不提供的任何内容都不应保存在 Web 根目录下。
【讨论】:
现有答案假定 processForm.php 仅包含代码,而不是表单的“action”属性中指定的页面。如果这个假设不正确,我会假设您确实希望此页面直接处理表单生成的 POST 请求,但您希望防止任何人意外或恶意运行此文件中的代码。
在这种情况下,您无法按照建议隐藏文件。相反,您可以使用在显示表单时创建的令牌,存储在会话变量中,并与表单一起提交()。在 processForm.php 中进行任何处理之前,请检查令牌是否存在并与会话变量中的令牌匹配。此外,您应该始终清理所有表单输入。只要可以通过网络访问,就不会阻止有人向您的脚本提交他们想要的任何内容。
【讨论】:
当您使用 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>
【讨论】: