go - 如何为 GRPC 服务设置 Strict-Transport-Header

标签 go security response-headers grpc-go

我正在检查为 UI 提供服务的 Http 端点启用的严格传输 header
让 GRPC 服务中的 header 不暴露于互联网或直接向 UI 提供服务是否有意义?

如果是这样,如何为 GRPC 服务启用严格传输 header ?
我已经看到 Grpc trailing-metadata header 可以与响应一起发送。
但这是添加标题的正确方法吗?

这些服务是用 Go 编写的,我使用的是 GRPC。

最佳答案

HTTP 严格传输安全 (HSTS) 仅在客户端也支持时才有用。 gRPC 客户端不这样做,因此添加此类 header 不会增加任何值(value)。

如果客户端不支持,HSTS 就没有用,因为 header 只说“您只能通过 HTTPS 访问此资源”,但如果客户端忽略这一点,它可以继续使用纯 HTTP请求(假设服务器同时支持 HTTP 和 HTTPS)。

此外,HSTS 仅在客户端至少访问一次资源并记住当时收到的 header 之后才起作用。对于大多数服务器到服务器的通信来说,情况并非如此。

如果您想确保进出 gRPC 服务和客户端的数据经过加密,您可以使用 SSL/TLS,如 https://grpc.io/docs/guides/auth/#using-client-side-ssltls 所示。 .

关于go - 如何为 GRPC 服务设置 Strict-Transport-Header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70899134/

相关文章:

go - 将字符串转换为字符串类型的 slice

go - Alpha channel (PNG) 和 Golang 的问题

php - 获取 php virtual() 响应头

go - 有没有办法在 Go 中重载函数?

amazon-web-services - AWS Elastic Beanstalk-Go示例应用程序

c# 并从内存中删除敏感数据和所有垃圾收集副本

asp.net - 为什么需要执行服务器端验证?

java - @RunAs 用于@WebService EJB

python - 我得到的 WSS 和 MOSS 2007 版本名称相同吗?

javascript - 无法访问 Set-cookie 响应 header 和/或 cookie 请求 header