【问题标题】:PHP, stop access to filesPHP,停止访问文件
【发布时间】:2013-03-30 03:31:29
【问题描述】:

所以我有许多用于存储数据的 .txt 和 .xml 文件,我是否可以让它们存储数据,但用户无法在 Web 浏览器中打开它们?

我认为他们可能是一种使用 .htaccess 来做到这一点的方法,但到目前为止,在对此事进行研究时仍无法找到任何答案

【问题讨论】:

  • .htaccess 将作用于整个目录;因此,如果您将文件放在运行代码的目录以外的目录中,则应该可以阻止一个而不阻止另一个。到目前为止你尝试了什么?您的研究将您带向何方?

标签: php .htaccess directory


【解决方案1】:

将它们存储在您的文档根目录之外,这样您的网络服务器将无法回复对它们的请求。这将比依赖.htaccess 文件更可靠。

【讨论】:

    【解决方案2】:
    1. 将它们存储在文档根目录之外(推荐)
    2. 在您的 Web 根目录中使用以下 htaccess

    .

    <Files ~ "\.txt$">
        Order allow,deny
        Deny from all
    </Files>
    <Files ~ "\.xml$">
        Order allow,deny
        Deny from all
    </Files>
    

    【讨论】:

      【解决方案3】:

      有两种方法可以解决这个问题。如果您的服务器是 Apache,您可以将文件存储到名为“data”的特定文件夹或任何您喜欢的文件夹中,在此文件夹中,您将有一个 .htaccess 文件,其中包含以下单行:Deny from all。就是这样,就像魅力一样。

      但是,一旦某些服务器维护可以使 Apache 忽略 .htaccess 文件一段时间,它并不能完全保证 100%,那么您的安全性就没有了。在这种情况下,您可能更愿意将这些文件存储在公用文件夹之外。

      托管网站时,通常的做法是拥有像/home/mywebsite.com/public_html/ 这样的组织,其中public_html 子文件夹是您的网站结构实际所在的位置,但/home/mywebsite.com/ 文件夹内的所有内容也属于以供您随意使用,主要用于存储不应该被公众访问的文件和信息。

      该组织还可能会阻止敏感的.php 文件,特别是包含密码的文件被公众直接访问,再次,Apache 维护可以使其停止解释 PHP 文件并改为显示代码。曾经发生在我身上,并不酷。

      【讨论】:

        【解决方案4】:

        创建一个 .htaccess 文件并将其放入您的目录并使用:

        <filesMatch ".(txt|xml)$">
            order deny,allow
            deny from all
            allow from your.ip.xxx.xxx ## add this line if you allow certain users access to your data
        </filesMatch>
        

        或者您可以将 .txt/xml 文件移到根目录之外,除非您的脚本需要大量修改,否则我建议您这样做,但这是值得的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-02
          • 2018-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-05
          • 1970-01-01
          相关资源
          最近更新 更多