【问题标题】:Folder permission .htaccess文件夹权限 .htaccess
【发布时间】:2013-12-16 16:46:30
【问题描述】:

我正在创建一个 php 网站,我想保护我的 css 文件。因此,如果任何用户试图直接在浏览器中打开它,他将无法看到此代码。我已经创建了 .htaccess 文件并写了

 # no one gets in here!
deny from all

ErrorDocument 403 "You dont have sufficient priviliges to view this page.

但是现在我的 css 根本没有在任何页面中呈现。我怎样才能实现这个功能?

【问题讨论】:

  • 你为什么要这样做?
  • @user3106347 你不能这样做。这是不可能。如果您的浏览器可以下载 CSS(它必须),那么 anyone 可以。这就是互联网的运作方式。
  • 如果浏览器看不到您的 css 文件,您认为它如何呈现您的页面?将浏览器视为一个人
  • 我想你错过了我之前的评论。 你要求的是不可能的。您的浏览器必须能够以准确与人类通过输入 URL 相同的方式下载它。这就是互联网的运作方式。查找 GET 请求。
  • @user3106347 这根本不可能。您需要了解 Internet 的工作原理,才能了解为什么它是不可能的。

标签: php css .htaccess


【解决方案1】:

通过.htaccess 保护文件将阻止它们通过浏览器打开。因此,当浏览器尝试加载此文件以呈现 CSS 时,它将无法访问它。

有些明显 - 不是吗?

此外 - CSS、HTML、JavaScript 文件不能被保护在浏览器中打开它们,因为为了达到它们的目的,这些文件应该可以从浏览器中访问...

【讨论】:

    【解决方案2】:

    不是 100% 万无一失,但您可以通过 HTTP_REFERER 检查来做到这一点。

    将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

    RewriteEngine On
    
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC] 
    RewriteRule \.(css|js|jpe?g|gif|bmp|png)$ - [F,NC]
    

    yourdomain\.com 替换为您的实际域名。

    现在你自己的页面可以访问css、js、图片文件,但是外部无法访问这些文件

    【讨论】:

    • 这绝不是保护...但是对于不知道网络浏览器如何工作的人来说,它会起作用。那些知道如何在浏览器中打开 CSS 的人仍然可以访问它...
    • @AlexKey 你的意思是使用 Firebug / Inspect 元素?
    • 你可以看到我是如何开始回答Not 100% foolproof的。但它仍然会阻止大多数不知道如何破解 HTTP_REFERER 标头的用户。
    • @HussainTamboli 是的,如果浏览器一旦加载了 CSS,它将保持缓存,第二次(如果您只是输入 URL),它不会从服务器请求,而是从本地缓存显示(这不适用于所有浏览器)
    • 无需破解HTTP_REFERER标头,您可以随时从浏览器的视图源轻松获取CSS
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2018-03-07
    • 2015-10-21
    • 1970-01-01
    • 2018-09-19
    相关资源
    最近更新 更多