Web 安全最佳实践

Web 安全的最佳做法

无论是从 Compute Engine 实例、Cloud Storage 存储桶还是位于 Google Cloud之外的外部源站传送内容,Cloud CDN 和 Cloud Load Balancing 都可以帮助您遵循 Web 安全最佳实践。

设置安全标头

HTTP 规范具有多个标头,用于控制以下内容:

  • 客户端行为
  • 内容的嵌入方式
  • 如何跨网域传送内容
  • 连接到该网域时是否始终使用 TLS (HTTPS)

这些控制通常表示为 HTTP 响应标头,对于每个后端(在 CDN 术语中称为“源站”),这些标头都可以设置为 外部应用负载均衡器和 Cloud CDN 部署的自定义响应标头。

如果您使用的是 Cloud Storage 并从存储桶传送 Web 内容,则可以在存储桶的前面使用 CDN,以设置 Web 安全标头并缓存热门内容。

下表对大部分实用的 Web 安全标头进行了定义。

标头名称 说明 用法示例
Strict-Transport-Security (HSTS) 在设置此标头之前,请确保您的网域具有有效的 SSL (TLS) 证书。

告知客户端必须通过 HTTPS (SSL/TLS) 直接连接到您的网域,从而避免从 HTTP 重定向到 HTTPS(这会导致速度变慢),并引入中间人攻击风险。

设置此标头实际上是不可逆转的。缓存此标头后,现代浏览器客户端不会尝试非 HTTPS 连接,并且即使 SSL 已关闭,用户也无法访问收到此标头的任何网域。此行为可防止攻击者将安全协议降级为不受保护的 HTTP(称为降级攻击)。

传送 Strict-Transport-Security 标头时,请谨慎添加 includeSubdomains 或 preload 指令。这些指令要求任何子网域都使用 HTTPS,包括同一网域上的所有内部网站。例如,从 example.com 传送时 support.example.com。

对于将来的所有连接,都要求客户端直接通过 HTTPS 进行连接,缓存此指令的时间最长为两年:

Strict-Transport-Security: max-age=3104000

X-Frame-Options 指示浏览器是否可以使用 、