2013-03-18 75 views
5

我運行使用瀏覽器端Javascript加密和解密比特幣密鑰的比特幣錢包。如何檢查加載的Javascript代碼的完整性

我想讓JavaScript可用於在Github上進行審查,然後從github存儲庫加載JavaScript。

我的問題是我需要檢查加載的Javascript的完整性,以確保在Github沒有被篡改。

我該如何做到最好?它會是什麼樣的。

  1. 使用ajax調用加載遠程Javascript。
  2. MD5散列和比較。
  3. 如果狀態良好,執行它。
+2

客戶端不能混淆校驗和計算函數本身嗎? – 2013-03-18 15:01:39

+0

也許會將您的代碼存儲在另一臺*服務器上。只有您可以訪問的CDN。這樣你就可以確定它沒問題。 – 2013-03-18 15:01:45

+0

這對於檢查客戶端是否至關重要?我很確定你知道客戶端在任何方面都不安全。完整性檢查必須由服務器端腳本完成,然後將其反饋給JavaScript,否則您將面臨巨大的安全問題。 – 2013-03-18 15:02:07

回答

4

現在有(或很快會)一個優雅的方式來實現這一點(問題提出後兩年)。

http://www.w3.org/TR/SRI/

現在,您可以指定腳本標籤中的「誠信」參數:

<script src="https://github.com/<path>/yourscript.js" 
     integrity="sha256-SDf......"> 

這不會對通過AJAX請求加載腳本工作。但是您可以將腳本作爲指向CDN的腳本標記(理想情況下不直接在github上)參考腳本