2009-06-06 69 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中进行任何处理之前,请检查该令牌是否存在并与会话变量中的令牌匹配。另外,您应该始终清理所有表单输入。只要网络可访问,就不会有人提交任何他们想要的脚本。

相关问题