如何修正 Exchange Server CSP 問題

Ken Tsai - 蔡武吉 0 信譽點數
2024-12-09T01:01:59.87+00:00

目前我們已經在 Exchange Server 的 IIS 中設定了 HTTP 回應標頭,設定資訊如下 名稱:content-security-policy 值:default-src 'self' https://*.cloud.microsoft https://*.office.com https://*.office365.com https://*.outlook.com https://autodiscover.benqmaterials.onmicrosoft.com https://autodiscover.benqmaterials.com https://bmcowa.benqmaterials.com https://owa.benqmaterials.com https://*.protection.outlook.com https://*.mail.protection.outlook.com https://*.mx.microsoft https://*.sharepointonline.com https://*.microsoft.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.cloud.microsoft https://*.office.com https://*.office365.com https://*.outlook.com https://autodiscover.benqmaterials.onmicrosoft.com https://autodiscover.benqmaterials.com https://bmcowa.benqmaterials.com https://owa.benqmaterials.com https://*.protection.outlook.com https://*.mail.protection.outlook.com https://*.mx.microsoft https://*.sharepointonline.com https://*.microsoft.com; style-src 'self' 'unsafe-inline' ; img-src 'self' data: https:; connect-src 'self' https: ; font-src 'self' data: https: ;

其中有問題的地方在於,script-src 後有一個 'unsafe-inline' 的值,這個值會判斷為風險設定。 若我們將 'unsafe-inline' 移除,則會造成網頁版的信箱為空白,Web Console 的錯誤 Log 如下: logon.aspx:661 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.cloud.microsoft https://*.office.com https://*.office365.com https://*.outlook.com https://autodiscover.benqmaterials.onmicrosoft.com https://autodiscover.benqmaterials.com https://bmcowa.benqmaterials.com https://owa.benqmaterials.com https://*.protection.outlook.com https://*.mail.protection.outlook.com https://*.mx.microsoft https://*.sharepointonline.com https://*.microsoft.com". Either the 'unsafe-inline' keyword, a hash ('sha256-t82Nl1gwDkGQ0Hz8iL5Kq63/boN+aNk+tzZI282JNRs='), or a nonce ('nonce-...') is required to enable inline execution. logon.aspx:1210 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.cloud.microsoft https://*.office.com https://*.office365.com https://*.outlook.com https://autodiscover.benqmaterials.onmicrosoft.com https://autodiscover.benqmaterials.com https://bmcowa.benqmaterials.com https://owa.benqmaterials.com https://*.protection.outlook.com https://*.mail.protection.outlook.com https://*.mx.microsoft https://*.sharepointonline.com https://*.microsoft.com".

Exchange Server
Exchange Server
Microsoft 用戶端/伺服器傳訊和共同作業軟體系列。
15 個問題
0 則留言 沒有留言
{count} 則投票

1 個回答

排序依據: 最實用
  1. Jenne Li-MSFT 930 信譽點數 Microsoft 廠商
    2024-12-09T07:19:22.5533333+00:00

    嗨 @Ken Tsai - 蔡武吉

    感謝您在 Microsoft 問答論壇中發佈您的問題。

    根據您的描述,您在Exchange Server 的IIS 中設定了HTTP 回應標頭後遇到了script-src 後有一個 unsafe-inline 的值,這個值會判斷為風險設定。並且提示拒絕執行內聯腳本,因為它違反了以下內容安全策略指令: script-src 'self' 'unsafe-eval。提示需要unsafe-inline 關鍵字、哈希或nonce才能啟用內聯執行。這可能因為啟用 CSP 時,它將阻止內聯腳本,因此在您定義標頭後,瀏覽器將自動阻止內聯腳本。您可以使用 nonce或哈希允許內聯腳本:

    1.nonce 只是您加入 header 中的隨機、一次性使用的字串值,您可以使用script-src js-cdn.example.com 'nonce-rAnd0m';連線。

    2.允許內聯腳本的第二種方法是使用哈希,您可以先計算程式碼的哈希,然後將值放入CSP 策略。像這樣script-src js-cdn.example.com 'sha256-xzi4zkCjuC8lZcD2UmnqDG0vurmq12W/XKM5Vd0+MlQ='

    如果您有任何疑问,请随时与我联系。 如果答案有帮助,请点击“接受答案”,因为它可以帮助遇到类似问题并正在寻找解决方案的 Microsoft Q&A 社群的其他成员。 谢谢。

    Best,

    Jeanne


您的回答

問題作者可以將答案標示為「已接受的回答」,有助使用者知道此回答解決了作者的問題。