瀏覽器控制檯報錯
異常問題:瀏覽器關閉連線
Failed to load resource: net::ERR_CONNECTION_CLOSED
異常原因:專案中混用http協議和https協議
解決方案:指示 User Agent 將 HTTP 更改為 HTTPS
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
異常內容:頁面的script標籤內容沒有解析
Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'".
Either the 'unsafe-inline' keyword, a hash ('sha256-FHnVzrXhpOtWrkgyliiAXazqbkNKS+/DFGxknB42YNc='),
or a nonce ('nonce-...') is required to enable inline execution.
Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
異常的原因:Content-Security-Policy的預設配置是default-src 'self'。
解決方案:新增script-src * 'unsafe-inline',對於頁面內部標籤不進行安全驗證。
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;script-src * 'unsafe-inline'">
終極解決:<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
參考文件:Google內容安全政策
CSP 提供了一個豐富的政策指令集:
script-src
用於控制指令碼對於某個特定頁面所享有的一組許可權。base-uri
用於限制可在頁面的<base>
元素中顯示的網址。child-src
用於列出適用於工作執行緒和嵌入的幀內容的網址。例如:child-src https://youtube.com
將啟用來自 YouTube(而非其他來源)的嵌入視訊。 使用此指令替代已棄用的frame-src
指令。connect-src
用於限制可(通過 XHR、WebSockets 和 EventSource)連線的來源。font-src
用於指定可提供網頁字型的來源。Google 的網頁字型可通過font-src https://themes.googleusercontent.com
啟用。form-action
用於列出可從<form>
標記提交的有效端點。frame-ancestors
用於指定可嵌入當前頁面的來源。此指令適用於<frame>
、<iframe>
、<embed>
和<applet>
標記。此指令不能在<meta>
標記中使用,並僅適用於非 HTML 資源。frame-src
已棄用。請改用child-src
。img-src
用於定義可從中載入影象的來源。media-src
用於限制允許傳輸視訊和音訊的來源。object-src
可對 Flash 和其他外掛進行控制。plugin-types
用於限制頁面可以呼叫的外掛種類。report-uri
用於指定在違反內容安全政策時瀏覽器向其傳送報告的網址。此指令不能用於<meta>
標記。style-src
是script-src
版的樣式表。upgrade-insecure-requests
指示 User Agent 將 HTTP 更改為 HTTPS,重寫網址架構。 該指令適用於具有大量舊網址(需要重寫)的網站。