2012-08-05 46 views
1

「像Facebook這樣的網站使用動態更改的名稱加載JavaScript文件,這會阻止它先前緩存JavaScript文件,因此無法完成此攻擊。載入具有任意(更改)腳本名稱的JavaScripts

你可以閱讀更多關於這個攻擊矢量here

使用更改名稱加載您的JS文件可以緩解緩存中毒的風險 - 因爲第三方無法預測要攔截哪些JS文件。

如果您知道如何在頁面加載時動態更改JS文件的名稱,或者可以鏈接到相關信息,我將不勝感激。這些知識對於任何人都很有價值。

+0

這只是一個簡單的緩存清除代碼,不是嗎?將各個時間戳添加到文件URL。 – Bergi 2012-08-05 03:38:40

回答

1
  1. 爲每個用戶生成一個唯一的腳本密鑰。 (存儲在用戶表中的鍵,或只使用加密散列)

  2. 更改<script>標籤引用一個特殊的服務器端的處理程序,包括密鑰和腳本的名稱。 (您可以使用路由引擎,使網址更漂亮。

  3. 在服務器端代碼,檢查鍵匹配當前登錄的用戶。
    如果該鍵不存在或不匹配,返回一個404(和日誌安全審查請求)

這不會的CDN或靜態內容領域發揮出色。