【问题标题】:HTAccess Protecting FilesHTAccess 保护文件
【发布时间】:2012-10-11 06:18:33
【问题描述】:

我想要一个 htaccess 来保护文件不被直接访问。所以这是我的文件结构:

我已经通过以下方式保护了我的文件夹:

Options -Indexes

但有人仍然可以输入

www.domain.com/Folder/CSS/Styles.css

或

www.domain.com/Folder/Insert.php

它会向他们展示一切。我究竟如何使用 htaccess 保护这些文件?我不希望任何人能够查看它们,但我希望站点能够正常运行。上次我试过了

deny from all

整个网站无法加载,因为所有文件/文件夹都被完全锁定,甚至自己的网站也无法访问它的内容。我只是不希望人们在 url 中输入文件路径并查看它们。

【问题讨论】:

    标签: html .htaccess redirect url-rewriting subdirectory


    【解决方案1】:

    您想要的是不可能的,因为网络浏览器需要能够获取文件。您可以在受保护的目录中尝试以下操作。只要知道使用 Firebug 或任何其他开发工具不需要天才就可以轻松查看这些请求的输出 - 欺骗标头也很容易做到......

    SetEnvIfNoCase Referer "www.example.com" mysite
    
    <Limit GET POST HEAD>
     Order Deny,Allow
     Deny from all
     Allow from env=mysite
    </Limit>
    

    如果您不熟悉语法,也可以使用 mod_rewrite 来实现相同的目的,并带有[F] 来禁止。 (为便于阅读而编写)

    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
     RewriteCond %{REQUEST_URI} ^/Folder/?(.*)$ [NC]
     RewriteCond %{HTTP_REFERER} !^http://www\.example\.com/ [NC]
     RewriteCond %{HTTP_REFERER} !^https://www\.example\.com/ [NC]
     RewriteRule ^.*$ - [F]
    </IfModule>
    

    请注意,如果您有一个 flash/silverlight/java 应用程序,那么在应用这样的解决方案之前,您需要确保它通过了正确的引荐来源请求标头。

    【讨论】:

    • 哦,对了,我知道你基本上可以使用 firebug/inspector/etc 窃取所有内容。但我真正得到的是保护敏感的 php 文件和包含重要信息的文档,我不希望任何知道文件名的人能够导航到它并查看它。我认为您的解决方案将有助于解决该问题,对吧?
    • 如果它包含敏感信息然后保护它:httpd.apache.org/docs/current/howto/auth.html
    • 如果我让一个文件夹需要身份验证,那么这是否会延续到文件中?我可以要求www.domain.com/Folder 的身份验证,但我也需要www.domain.com/Folder/file.txt 要求身份验证
    • .htaccess 适用于当前目录和任何子目录,除非在子 .htaccess 中明确覆盖。此操作涵盖目录结构中的所有文件。
    猜你喜欢
    • 1970-01-01
    • 2014-12-16
    • 2010-10-12
    • 1970-01-01
    • 2012-07-02
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多