這是問題/問題,我提供了來自我們業務域(例如www.mysite.com/js/metrics.js)的 JavaScript,該 JavaScript包含在 20 多個不同的 Web 應用程式中,并包含在其檔案的標題中。它用于分析跟蹤。我假設我需要通過使用 script-src 元標記更新 DOM 來設定 CSP,該標記僅適用于我的代碼和它呼叫的外部 JavaScript(來自 Akamai CDN assets.adobedtm.com),而不是整個 Web 應用程式. 我的 CSP 元標記是否可以或將應用于 Web 應用程式加載的任何外部腳本,并且我必須知道所有 Web 應用程式加載的每個外部 JavaScript?有沒有辦法實作這一目標?有任何想法嗎?這是我第一次做 CSP,所以也許我沒有正確理解它......所以要溫柔!
謝謝!
uj5u.com熱心網友回復:
是的,您的 CSP 元標記將應用于 Web 應用程式加載的任何外部腳本,并且您必須了解所有 Web 應用程式加載的每個外部 JavaScript。
但是如果你加載的所有腳本都來自assets.adobedtm.com你可以將此源添加到script-src指令中:
script-src assets.adobedtm.com
并且將允許來自它的所有外部腳本。
此外,CSP 還提供了做您想做的事情的可能性 -'strict-dinamic'與'nonce-value'或配對的令牌'hash-value'。但是 Safari 仍然沒有實作這一點(Chrome、Edge 和 Firefox 都支持)。如果您的 CSP 是'nonce-value'這樣的:
script-src 'nonce-SomeSecureValue' 'strict-dinamic';
比:
<script src='https://domain/script.js' nonce='SomeSecureValue'>
將被允許??加載,它插入的任何子腳本也將被允許。
如果 CSP 具有'hash-value':
script-src 'sha256-HashOfScriptAllowed' 'sha256-HashOfScript2Allowed' 'strict-dinamic';
比:
<script src='https://domain/script.js' integrity='sha256-HashOfScriptAllowed'>
將被允許??加載,它插入的任何子腳本也將被允許。但是 Firefox 有一個錯誤,'hash-value'它只支持行內腳本,不支持外部腳本。
或者,您可以使用行內<script nonce='SomeSecureValue'> dynamically create script tags and load external scripts</script>并通過nonce或允許它hash。將允許其所有子腳本。使用Google 的嚴格 CSP可以繞過
Safari 的'strict-dynamic'錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313716.html
上一篇:制作新的OAuth2客戶端ID或每個客戶是否有任何安全優勢?
下一篇:OWASP依賴檢查,如何使用抑制
