3 回答

TA貢獻1794條經驗 獲得超7個贊
我們一直遇到同樣的問題。
以下是解決方法:
安裝多姆凈化庫。
npm install --save DOMPurify
創建一個文件 。
trusted-security-policies.js
在捆綁器的入口點(例如 webpack)中,首先導入此文件(在任何可能違反內容安全策略的代碼之前):
import './path/to/trusted-security-policies';
import DOMPurify from 'dompurify';
if (window.trustedTypes && window.trustedTypes.createPolicy) { // Feature testing
window.trustedTypes.createPolicy('default', {
createHTML: (string) => DOMPurify.sanitize(string, {RETURN_TRUSTED_TYPE: true}),
createScriptURL: string => string, // warning: this is unsafe!
createScript: string => string, // warning: this is unsafe!
});
}
這樣做是做什么的:每當將字符串指定為 HTML、URL 或腳本時,瀏覽器都會通過定義的處理程序函數自動傳遞此字符串。
對于 HTML,HTML 正在由 DOM 純化庫從潛在的 XSS 代碼中清除。
對于 和 ,字符串只是傳遞。請注意,這實際上禁用了這兩個部分的安全性,并且只應在您尚未確定如何使這些字符串安全的情況下使用。一旦有了,就相應地替換處理程序函數。scriptURL
script

TA貢獻1887條經驗 獲得超5個贊
檢查一下。幫幫你。
潛在修復的參考:
有關可信類型和 Chrome 瀏覽器實施的背景:
https://github.com/w3c/webappsec-trusted-types/blob/master/explainer.md
https://gadgets.kotowicz.net/poc/Trusted_Types_TPAC_2018.pdf
短期修復選項:
添加僅報表 CSP 標頭。[不是很好,如果你正在運行一個敏感的prod應用程序,你必須知道各種風險]
長期修復選項:
您可以進行調查,將外部第三方的東西帶到您的基地,并避免整體的痛苦。
我不是專家,只是試圖從中學習,我會說修復幾乎是從案例到案例,而不是銀彈類型。

TA貢獻1828條經驗 獲得超6個贊
在我的情況下,是Chrome的“更改時區”插件導致問題出現在網站上。已卸載插件,一切都已解決。因此,最好檢查問題是否由最近安裝的瀏覽器插件引起,并檢查其他瀏覽器。
添加回答
舉報