【问题标题】:How to prevent access to certain URL requested pages?如何防止访问某些 URL 请求的页面?
【发布时间】:2009-06-06 21:09:43
【问题描述】:

如何防止访问某些 URL 请求的页面?

如果我的 webapp 根目录中有 form.html, processFrom.php and getResults.php,即使 processFrom.php 不回显任何内容,我如何才能阻止用户通过输入 URL 来访问此文件?

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    大概您只能通过include 语句或类似语句访问它?最安全的选择是将它放在文件系统的其他位置,然后从那里包含它。

    Web 服务器不提供的任何内容都不应保存在 Web 根目录下。

    【讨论】:

      【解决方案2】:

      现有答案假定 processForm.php 仅包含代码,而不是表单的“action”属性中指定的页面。如果这个假设不正确,我会假设您确实希望此页面直接处理表单生成的 POST 请求,但您希望防止任何人意外或恶意运行此文件中的代码。

      在这种情况下,您无法按照建议隐藏文件。相反,您可以使用在显示表单时创建的令牌,存储在会话变量中,并与表单一起提交()。在 processForm.php 中进行任何处理之前,请检查令牌是否存在并与会话变量中的令牌匹配。此外,您应该始终清理所有表单输入。只要可以通过网络访问,就不会阻止有人向您的脚本提交他们想要的任何内容。

      【讨论】:

        【解决方案3】:

        当您使用 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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-24
          • 2017-11-22
          • 2010-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多