我遇到了一個非常奇怪的問題,我無法設定 Content-Security-Policy 所需的單引號。我假設我運行的是舊版本的 ingress,它只有在我禁用并重新啟用它(microk8s)后才更新。
nginx.ingress.kubernetes.io/configuration-snippet: |
add_header Access-Control-Allow-Origin "https://myhost";
more_set_headers "X-FRAME-OPTIONS: SAMEORIGIN";
more_set_headers "Content-Security-Policy: default-src 'self' blob:;";
結果:
skipping ingress ...: nginx.ingress.kubernetes.io/configuration-snippet annotation contains invalid word '
我試過使用 'x2,轉義,用單引號包裹所有內容并轉義,沒有任何效果。如果有人能告訴我如何在標題中添加單引號,或者我是否可以避免它們并仍然發送 CSP,我將不勝感激。
編輯:為了清楚起見,這個配置曾經在舊版本上作業,現在入口版本是 v1.0.5。語法或其他設定沒有任何問題。
uj5u.com熱心網友回復:
與清理注釋輸入相關的更改已完全出現在1.0.5中。
您可能需要檢查CVE-2021-25742: Ingress-nginx custom snippets。我把對你感興趣的部分加粗。
annotation-value-word-blocklist 默認為 "load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,}, ' ,
來自 mod_security 和其他功能的用戶應該知道,這些功能可能會使用一些被阻止的值,并且必須由 Ingress 管理員手動解除阻止。
在我看來,您的問題與mod_security 上面的阻止串列有關,其中包含'符號。
有關更多詳細資訊,請查看https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#annotation-value-word-blocklist
為了解決您的問題,您應該
- 將 annotation-value-word-blocklist 的值設定為空字串“”
或者
- 更改 annotation-value-word-blocklist 的值并
'從其串列中洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/419577.html
標籤:
