2013-05-31 45 views
0

因此,我意識到任何人都可以在瀏覽器中查看運行HTML的JavaScript,因此如果我在服務器上使用外部js庫,它的內容將完全隱藏起來?隱藏了外部JavaScript庫嗎?

另一個問題是,有沒有什麼情況下最好使用內聯的JavaScript,比如使用jQuery或者什麼的,或者真的沒有使用js庫的缺點?

+0

編號打開Developer Tools或Firebug,您可以看到所有加載的腳本,無論它們是內聯還是外聯。 – Barmar

+1

可能的重複[如何混淆(保護)JavaScript?](http://stackoverflow.com/questions/194397/how-can-i-obfuscateprotect-javascript) – Mogsdad

回答

4

不,沒有辦法,你的JavaScript將永遠「隱藏」。任何可以在瀏覽器中運行的東西都可以簡單地保存和檢查。你能做的最好的是使用混淆器。

使用外部文件的缺點是它是另一個請求。好處是它可以獨立緩存。爲獲得最佳性能,將從多個頁面使用的代碼應存儲在其自己的文件中,並且特定於頁面的代碼最好存儲在使用它的頁面中。

+0

您是否說隱藏敏感代碼的最佳方式或邏輯是在一個PHP文件,通過AJAX /網絡套接字與JavaScript通信呢? – Cains

+2

是的,專有邏輯屬於服務器。 –

0

除了類似節點之外,Javascript運行客戶端,因此無論如何您都無法在服務器上真正使用「外部js庫」。

最佳做法決定了您應該幾乎總是使用<script>標記引用您的JavaScript並使用src屬性鏈接到您的JavaScript文件。

+0

我想我在這裏有一點困惑,但在技術上不是服務器上的所有代碼或庫,它只是分發給客戶端?我可能想用某種方式將AJAX與JavaScript庫結合使用,但是我看到這並不合理。 – Cains

1

JavaScript在瀏覽器級別上運行,這意味着瀏覽器在某些時候會讀取您的JS(外部或內部相同)。你可以輕易得出這樣的結論:如果在某些時候JS現在已經被瀏覽器註冊了,並且任何人都可以通過web的東西來獲得更多知識。你將無法隱藏你的JS欺騙。
Pus在你的JS a版權聲明和祈禱。

千萬不要通過黃色線發送敏感數據。
如果您有一些額外的敏感字符串,請在服務器端對它們進行編碼和比較 - 將它們發送到MD5或某些SHA型號服務器。