【问题标题】:Public_html file permissionspublic_html 文件权限
【发布时间】:2012-01-10 00:12:16
【问题描述】:

我正在构建一个使用许多文件的站点,其中许多文件不应该通过浏览器访问。例如,每个 MYSQL 查询页面用户都有一个 mysql_conect 脚本,但如果用户通过 URL(example.php/mysqlconnect.php)直接导航到该页面,屏幕将返回空白..我怎样才能让它成为浏览器当用户尝试直接访问这些文件时返回 401 权限错误?

【问题讨论】:

  • "the screen would return blank" - 那又怎样?
  • “增强的使用体验”lol...事实是,你们都是对的,它不会带来安全风险,所以我暂时离开它。谢谢大家。
  • 这样的使用体验有什么用例?公平用户在什么情况下可能会遇到此文件?

标签: php .htaccess ftp


【解决方案1】:

没有必要这样做。除非您回显这些值,否则您是安全的。

除非被告知,否则 PHP 不会在浏览器中呈现。许多(所有)脚本都按照您的解释进行。

【讨论】:

    【解决方案2】:

    正如@Paul 所说,没有必要这样做,如果用户将浏览器指向 example.php/mysqlconnect.php,用户将永远不会看到 php 文件的内容,但如果你愿意,你可以删除 . htaccess 文件位于 mysql_connect.php 脚本所在的同一目录中,内容如下:

    <Files mysql_connect.php>
      order allow,deny
      deny from all
    </Files>
    

    或者如果你想限制对整个目录的访问,.htaccess 文件的内容需要是:

    deny from all
    

    或者

    Options All -Indexes
    

    您可以在此处查看 .htaccess 文件中的更多配置选项:

    Htaccess tricks

    【讨论】:

      【解决方案3】:

      在特定情况下,您可以将文件放置在您想要的任何位置,并将以下代码添加到您的文件中

      if(basename($_SERVER['PHP_SELF']) == 'mysqlconnect.php')
          header('HTTP/1.1 401 Unauthorized');
          exit;
      

      所以如果直接请求文件,会返回401状态码并退出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-08
        • 1970-01-01
        • 2011-03-29
        • 2015-06-02
        相关资源
        最近更新 更多