2011-11-15 34 views
0

我有一些js文件,任何訪問我的網站的用戶都不應該查看這些文件,即我不希望js文件的內容顯示在頁面源文件中。數據很重要,所以我不希望用戶訪問。有什麼辦法可以做到這一點?或者有什麼辦法來加密js文件,這樣我仍然可以訪問裏面的數據,但不是用戶?或者,我可以在點擊js文件時做一些安全的重定向嗎?從網頁源阻止js文件訪問

+2

如果JS文件被加載,同時由客戶端瀏覽器中使用,這是不可能將其固定。 – Blender

+0

你可以做的最好的事情是混淆它,使它更難(但不是不可能)閱讀。任何在客戶端執行的操作(例如JavaScript)都將始終可供用戶使用。您不應該依賴客戶端上的任何內容來強制執行Web應用程序中的安全性。祕密不能保存,規則不能可靠地執行。你應該已經縮小你的JS了,一些縮小比如[YUI Compressor](http://developer.yahoo.com/yui/compressor/)也可以選擇性地混淆代碼。 –

+0

你可以設置訪問控制文件,這可能需要通過查看 – david

回答

2

你不能否認訪問您的JS文件,但你可以考慮縮小文件/混淆你的JS文件,使人們更難了解。

檢查這些minifier /混淆

+0

+1我欣賞你的技術,我曾經在google和facebook頁面源代碼中發現這種編碼,並且我在想他們正在使用哪種語言,現在我才知道這些是他們使用的技術,謝謝 – niko

+1

如果文件包含* data *正如@Kiran所說,這很沒用,因爲它可能不需要任何有意義的變量或函數名稱 - 而且對象鍵不會被javascript minifiers/obfuscators觸及。 – ThiefMaster

+0

我確定@Kiran含義代碼數據 –

1

顯然這是不可能的 - 瀏覽器可用的東西也可以提供給您。 如果用戶不能訪問數據,請不要發送給他們,而是將其保存在服務器上。

除此之外,我想你的JS是不是寶貴反正...

+0

不,它是。但我真的無法在這裏解釋。 – Kiran

1

這是不可能阻止網頁源代碼的JavaScript文件訪問和你說有一些數據這需要得到保護。

您可以將數據存儲在服務器上並使用AJAX調用獲取,以便用戶檢查源代碼時無需擔心。

但仍然沒有解決您的問題,因爲我們可以監控AJAX調用並查看響應。我認爲解決您的問題的唯一方法是在服務器上加密數據並將其發送給客戶端。您的客戶應該能夠解密數據。

對於加密/解密,大部分的開發人員使用AES和交換密鑰使用Extended Diffie Hellman Key Exchange algorithm

用戶仍然可以監控XHR請求並查看響應,但響應進行加密。

如果你覺得,你的源代碼也需要保護,然後去混淆器。

入住這jscrambler