资讯专栏INFORMATION COLUMN

HTTP 安全头部速记

changfeng1050 / 2639人阅读

摘要:本文简单介绍与安全相同的响应头部,内容整理自。参数参数说明指定的时间秒范围内浏览器总是使用来访问可选参数,是否同时应用于当前域名的所有子域名示例是一种防止网站被攻击者使用错误发布或其他欺诈性证书冒充安全证书的安全机制。

本文简单介绍与安全相同的 HTTP 响应头部,内容整理自《OWASP Secure Headers Project》。

HTTP Strict Transport Security

HTTP Strict Transport Security(HSTS) 是一种网络安全策略机制,用于防范降级攻击(Downgrade Attack)和 Cookie 劫持(Cookie Hijacking)。它允许服务器告诉浏览器(或其他代理)只能使用 HTTPS 访问服务,禁止使用 HTTP。实现了 HSTS 策略的服务器通过 HTTPS 链接的 Strict-Transport-Security 头部告诉客户端其策略,HTTP 中的 HSTS 头部会被忽略。

参数:

参数 说明
max-age=SECONDS 指定的时间(秒)范围内浏览器总是使用 HTTPS 来访问
includeSubDomains 可选参数,是否同时应用于当前域名的所有子域名

示例:

Strict-Transport-Security: max-age=31536000; includeSubDomains
Public Key Pinning Extension for HTTP

HTTP Public Key Pinning (HPKP)是一种防止 HTTPS 网站被攻击者使用错误发布或其他欺诈性证书冒充安全证书的安全机制。例如,攻击者可能会欺骗证书颁发机构,然后为错误的为其颁发证书。

HTTPS 服务器会通过头部提供一个公钥哈希列表,在后续的请求中,客户端期望服务端在证书链中使用其中一个或多个公钥哈希。想要安全的部署 HPKP,要求具有成熟的部署和管理机制,否则主机可能会因为固定到一组无效的公钥哈希而使得服务不可用。一旦成功部署,能够大大减小中间人攻击和其他虚假认证问题。

参数:

参数 说明
pin-sha256="" Base64 编码的公钥信息指纹,可以指定多个不同的公钥
max-age=SECONDS 指定的时间(秒)范围内总是使用其中一个固定的 key
includeSubDomains 可选参数,是否同时应用于所有子域名
report-uri="" 可选参数,pin 校验失败后的上报地址

示例:

Public-Key-Pins: pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM="; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; report-uri="http://example.com/pkp-report"; max-age=10000; includeSubDomains
X-Frame-Options

X-Frame-Options 响应头部用于保护网络应用遭受点击劫持(Clickjacking)攻击。它用来控制网站是否显示其它域的