Kubernetes Ingress headers 单引号
Kubernetes Ingress headers single quotes
我 运行 遇到了一个非常奇怪的问题,我无法设置 Content-Security-Policy 所需的单引号。我假设我是 运行 一个旧版本的入口,只有在我禁用和 re-enabled 它(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
,使用 \
转义,用单引号将所有内容括起来并转义,但没有任何效果。如果有人能告诉我如何向 headers 添加单引号,或者我是否可以避免它们并仍然发送 CSP,我将不胜感激。
编辑:需要说明的是,此配置过去适用于旧版本,现在入口版本为 v1.0.5。语法或其他设置都没有问题。
与清理注释输入相关的 1.0.5 中出现了更改。
您可能需要查看 CVE-2021-25742: Ingress-nginx custom snippets。我输入了 粗体 对你感兴趣的部分。
annotation-value-word-blocklist defaults are
"load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},',"
Users from mod_security and other features should be aware that some
blocked values may be used by those features and must be manually
unblocked by the Ingress Administrator.
在我看来,您的问题与 mod_security
+ above 黑名单有关,其中包含 '
符号。
为了解决您的问题,您应该
- 将 annotation-value-word-blocklist 的值设置为空字符串 ""
或
- 更改 annotation-value-word-blocklist 的值并从其列表中删除
'
。
我 运行 遇到了一个非常奇怪的问题,我无法设置 Content-Security-Policy 所需的单引号。我假设我是 运行 一个旧版本的入口,只有在我禁用和 re-enabled 它(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
,使用 \
转义,用单引号将所有内容括起来并转义,但没有任何效果。如果有人能告诉我如何向 headers 添加单引号,或者我是否可以避免它们并仍然发送 CSP,我将不胜感激。
编辑:需要说明的是,此配置过去适用于旧版本,现在入口版本为 v1.0.5。语法或其他设置都没有问题。
与清理注释输入相关的 1.0.5 中出现了更改。
您可能需要查看 CVE-2021-25742: Ingress-nginx custom snippets。我输入了 粗体 对你感兴趣的部分。
annotation-value-word-blocklist defaults are "load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},',"
Users from mod_security and other features should be aware that some blocked values may be used by those features and must be manually unblocked by the Ingress Administrator.
在我看来,您的问题与 mod_security
+ above 黑名单有关,其中包含 '
符号。
为了解决您的问题,您应该
- 将 annotation-value-word-blocklist 的值设置为空字符串 ""
或
- 更改 annotation-value-word-blocklist 的值并从其列表中删除
'
。