谷歌云负载均衡器 Cookie 上的安全标志



我们的 GCP 负载均衡器设置为使用 cookie 会话相关性路由到我们的后端服务。它工作正常,但未设置安全标志。我们试图根据 RFC 7230 指定它:

Set-Cookie: Secure

理论上,可以在后端服务自定义请求标头上配置标头。后端服务说明:

gcloud beta compute backend-services describe my-backend-service --global
customRequestHeaders:
- 'Set-Cookie: Secure'
description: ''
enableCDN: false
fingerprint: XXXXXX-XX
healthChecks:
- https://www.googleapis.com/compute/beta/projects/my-project/global/healthChecks/my-check
id: 'XXXXXXXXXXXXXXX'
kind: compute#backendService
loadBalancingScheme: EXTERNAL
name: my-backend-service
port: 80
portName: http
protocol: HTTP
selfLink: https://www.googleapis.com/compute/beta/projects/my-project/global/backendServices/my-backend-service
sessionAffinity: GENERATED_COOKIE
timeoutSec: 300

但是,GLCB cookie仍然没有显示安全标志。

我们做错了什么?

提前谢谢。

确保传递给 UriCookieConfig 的值是 HTTP 而不是 https。切换到 https 会将设置的 cookie 更改为安全,可能会解决您的问题。

设置 cookie

时,cookie 不是使用安全属性设置的,而是不是因为它是通过 HTTP 设置的(尽管也不理想)。set-cookie 标头中的安全标志指示客户端仅通过安全通道(例如 https)发送回 cookie。当请求不安全时,它会重定向到 https:

有关设置安全标志的更多详细信息,请参阅以下文档:

https://www.owasp.org/index.php/SecureFlaghttps://developers.google.com/web/fundamentals/security/encrypt-in-transit/enable-https

最新更新