2012-06-14 80 views
0

我们很容易将CSS和JS文件链接到HTML,PHP页面。我们能否阻止直接从浏览器打开CSS和JS文件?由于源代码可以被任何人查看,他/她可以通过理解路径来打开这些文件。我们如何实现阻止这些文件?我们可以阻止打开CSS,JS文件吗?

+5

你不能。如果用户无法读取它们,则Web浏览器将无法读取它们。 – robertc

+0

所有你能做的就是混淆文件,但这并不能让用户按原样重复使用它们。 – gcochard

+0

举例说,我们可以为文件夹设置403权限,例如www.websitename.com/images。但仍然可以访问树下的文件/图像。 –

回答

1

只有当您的主机提及(查看http标题)时,您需要设置您的Web服务器以服务于静态内容(js,img,css),但它不会完全阻止用户执行此操作。至于php用户不会看到它,它在服务器上运行,并且会输出大多数时间惰性html

+0

这有一个主要问题。如果浏览器设置为不发送引用者标题,那么如果您需要将其呈现并设置到该网站,则这些用户无法查看任何资源。 –

+0

我在说的是:没有引用标头集用户不能看到资源,期限。所以如果我让我的系统通过一个代理去除这个问题,或者我这样配置我的浏览器,那么我看不到任何这样的保护。 –

1

基本块会强制浏览器在访问文件时发送有效的Referer标题。这可以通过一些简单的.htaccess来完成:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !your\.domain\.here [NC] 
RewriteCond %{REQUEST_FILENAME} \.(css|js) [NC] 
RewriteRule .* - [L,F] 

然而,这不是一个好主意,因为它很容易造假的引用,或添加一个链接到网页,使浏览器自然将其发送。另外,一些浏览器只是不显示引用标头。

+0

IME,这不能很好地与Firefox一起工作...至少不是旧版本。 – user1337

+0

我会很感激你对我的回答的评论 – Rab

1

浏览器必须能够访问这些文件才能正确显示页面。你可以通过一些基本的缩小来混淆JS,或者更复杂的东西,比如How can I obfuscate (protect) JavaScript?

使用CSS,你可以尝试类似的东西。

相关问题