2010-10-11 466 views
5

可能重複:
How can I obfuscate JavaScript?什麼是編碼/保護JavaScript代碼的最佳方式?

我想 「保護」 我的Javascript代碼。有什麼好的,推薦的方法很難破解?

我測試在網絡上的一些編碼,有時候我的Javascript代碼不編碼後工作。 這是正常的(編碼器是非常糟糕的)?...或者是我的代碼太壞/越野車?

+4

我發誓這個問題每天都會被問到。 「哦不,有人會偷我的代碼!」 – Marko 2010-10-11 07:18:26

回答

7

你不能阻止任何人在看你的JavaScript代碼。它基本上和html一樣。你可以使它很難破譯,又稱混淆,但你真的從中得不到什麼。

如果您有出於某種原因,你覺得是關鍵任務應用程序的關鍵代碼,設計自己的Web應用程序中的「受保護」的代碼在服務器上運行的方式。使用xhr請求通信到前端(瀏覽器),這些請求只是來回傳遞狀態數據。

+5

並分發版權和適當的許可證。 – Swanand 2010-10-11 07:22:27

0

可以壓縮你的JavaScript。雅虎提供在線工具來壓縮文件。它還支持變量替換,即用a,b,c等替換邏輯函數名稱,變量名稱,以保護您的客戶端業務邏輯。

http://refresh-sf.com/yui/

+2

這不會保護任何東西。如果您的JavaScript將在網頁上運行,則必須使其源代碼可見且純粹且簡單。這個問題的四個答案,唯一錯誤的一個被採摘......嘆息...... – ubiquibacon 2010-10-11 07:31:05

0

你不能「保護」你的JavaScript,因爲它是客戶端,你能做的最好的驗證任何用戶輸入服務器端,以確保用戶沒有任何注入惡意代碼或嘗試任何形式的XSS(跨站點腳本)。驗證服務器端非常重要,尤其是因爲一個人可能會將代碼注入到一個製作不良的網站中,只有FireBug。基本上你需要確保你永遠不會寫回用戶輸入的字符串,直到字符串被編碼。除了編碼用戶字符串之外,還有更多的安全性,但它自身修復了許多安全漏洞。

+1

通過「保護」,我認爲他的意思是讓代碼難以竊取。 (編輯)哦,不,我現在看到'黑客'這個詞。對不起,你的回答是正確的。 – 2010-10-11 07:19:11

3

這是不可能的,因爲瀏覽器需要了解您的JavaScript當它到達,因此人能理解這一點。

爲了讓我們的Web應用程序更高效,我們決定壓縮(YUI用於JS和CSS),並將所有主要資源放在HTML頁面內聯(HTML,CSS和JS)中,shell腳本在部署期間自動執行。

作爲一個意外的結果,如果您查看我們的應用程序的源代碼,你得到相當不可讀〜250KB字符串。
這不會阻止那些真正想要獲取代碼的人,但這會阻止很多人。

相關問題