如何防止直接访问CSS和JS文件

时间:2012-01-21 05:59:37

标签: php html apache

  

可能重复:
  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 ..

3 个答案:

答案 0 :(得分:6)

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

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

您可以做的最好的事情是混淆来源。您可以通过使用已处理的语言(例如针对CSS的Stylus或LessCSS以及针对JS的Coffeescript)或通过使交付更复杂来实现此目的。您可以缩小脚本文件,甚至可以通过另一个JS文件动态生成和获取它们(小块)。

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

答案 1 :(得分:5)

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

Options -Indexes

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

答案 2 :(得分:0)

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

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