2011-08-08 52 views
1

我的理解是,只有在HTML頁面中內嵌放置的JavaScript代碼會顯示,永遠保存在.js文件混淆:javascript.js代碼在Chrome中顯示?

代碼...我從來沒有在任何瀏覽器的代碼出現在.js文件上顯示客戶端...
直到我開始使用Chrome,並注意到我所有的代碼都可以查看?

  1. 我是否一直在說服自己,在.js文件中的代碼是安全的,實際上它從來沒有?

  2. 雖然在這個問題上,響應者可以完全清楚.js文件中的代碼是否可以隱藏。 我讀過很多文章,讓我懷疑它是否可以完成。

。有人說把它放在服務器上的.js文件中,以便它在服務器上執行...
---使用'language = javascript'和帶有'runat服務器'的html行?不知道該怎麼做。
---但是,這不會打敗速度的目的,並刷新,因爲服務器已被訪問? (C#,VB,PHP,...)

。不妨在代碼後面加上代碼吧(C#,VB,php,...)
有人說使用AJAX調用等......但似乎有人反駁說,無論如何說代碼落在客戶端,因此會顯示? ...我假設這將是一個沒有頁面重繪的回調...

+0

它的開發者工具的一個有用的功能,如果瀏覽器可以看到一個文件,這樣任何人都可以 - 只要複製/粘貼的的src網址。 js的腳本元素 –

+1

JavaScript在客戶端上運行。您是如何期望客戶端沒有運行代碼? –

+0

Martinho ...touche,但'擁有它'並不強制意味着瀏覽器在處理內聯代碼時會像.js一樣處理內聯代碼。 –

回答

0

即使Javascript文件在.js文件中是唯一可以做的事情,但它可以使它難以理解的是縮小js文件。

0

實際上,存儲在分離文件中的javascript代碼不會直接顯示;用戶必須在地址欄中明確鍵入文件的名稱以查看其內容。

如前所述,隱藏它的唯一方法是縮小壓縮文件並使其無法讀取的文件。

+0

你的第一個陳述是不正確的,瀏覽器工具顯示完整的代碼。你的第二,縮小並不會讓人難以理解,解析它只會更困難 –

+0

當然,如果你使用工具,你會看到它;但在問題中沒有提到的工具... 而我錯誤的縮小,這是真的:) – gobes

4

JavaScript在瀏覽器中執行,這意味着腳本必須提交給客戶端。所以,當然任何人都可以查看代碼,它是否在開發人員工具中發生,從HTML中獲取直接鏈接,或者例如使用http嗅探器。

儘管如此,還是有一些方法可以使腳本對人類不可讀。 縮小腳本是一個很好的習慣。它減小了文件大小,所以客戶端必須下載更少,加快加載時間。畢竟,這並不能真正幫助用戶使您的腳本「無法讀取」,因此網絡上有很多的清理服務。

不過,還有另一種方法:obscurifying(或混淆)你的腳本。這取代了代碼以使其不可讀。不幸的是,我真的沒有使用這種技術的經驗,所以我不知道它會如何影響js代碼的性能。

也許你想看看這個:How can I obfuscate (protect) JavaScript?

+0

mnifying只不過是一個皮棉類型的過程,因此在這種情況下無用。混淆也是無用的,因爲它不會阻止被認定的攻擊 –

+0

請記住,要權衡時間和麻煩,必須通過使用文件進行部分隱藏遊戲,這些文件的格式很好,可以有效地進行編碼,並且文件可以長時間連續字符串是不值得的努力,除非代碼被保證隱藏。 –

+0

THUS,以簡化任何其他查詢答案: 不,客戶端代碼(javascript或其他)不能被隱藏。 辯論結束... –