【问题标题】:How to prevent direct access to CSS and JS files [duplicate]如何防止直接访问 CSS 和 JS 文件 [重复]
【发布时间】:2012-02-15 14:06:13
【问题描述】:

可能重复:
How can I block direct access to my JavaScript files?

我有一个文件夹,里面还有大约五个,如下所示:

 1.asset(folder)
       1.1 css (subfolder)
              1.1.1 style.css (file)
       1.2 javascript (subfolder)
                     1.2.1 validation.js (file)
 // goes on like this

现在我的问题是如何防止我的 css 在任何用户点击时出现 - my_base_url/asset/css/style.css 在浏览器上?

我尝试了空白 index.html,但它不起作用。我也尝试使用“全部拒绝”.htaccess 文件,但在这种情况下,当我加载我的网站时,它没有找到 CSS ..

【问题讨论】:

  • 这是不可能的,可靠的。
  • 试了也没用。如果用户的浏览器下载了文件,如何阻止用户获取呢?
  • “您是浏览器吗?然后读取我的文件并将其存储在您的缓存中,但永远不要让用户看到它。交易?”
  • 您为什么要这样做? CSS 和 JS 文件在浏览器之外没有任何意义,那么为什么要阻止浏览器获取它们呢?如果你试图阻止人们阅读你的 JS 文件,那么相信我,那里没有什么重要或令人惊奇的东西需要保护它不被窥探

标签: php html apache


【解决方案1】:

从技术上讲,您要求的是不可能的。

为了让浏览器能够使用 CSS,它必须能够访问它。同上 Javascript。

你能做的最好的就是混淆源。您可以通过使用经过处理的语言来做到这一点——例如用于 CSS 的 Stylus 或 LessCSS,以及用于 JS 的 Coffeescript——或者使交付更加复杂。您可以缩小脚本文件,甚至让它们由另一个 JS 文件动态生成和获取(小块)。

但是,您所做的任何事情都可以进行逆向工程,因为用户必须能够访问规则才能让浏览器使用它们

【讨论】:

    【解决方案2】:

    如果您的意思是不想显示您的 css 和 js 目录的目录列表,请将以下内容添加到您的 .htaccess 文件中:

    Options -Indexes
    

    来自:http://www.thesitewizard.com/apache/prevent-directory-listing-htaccess.shtml

    【讨论】:

      【解决方案3】:

      首先,阻止直接链接到css文件并不意味着其他人看不到内容。大多数浏览器都具有检查加载文件的功能,其中包括您的 css。

      您可以做的一件事是将所有内容放在 WEB-INF 文件夹下,并让控制器加载所有静态资源。我想不出你为什么要这样做的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-22
        • 1970-01-01
        相关资源
        最近更新 更多