2012-06-14 79 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,你可以嘗試類似的東西。

相關問題