一些安全相关的HTTP响应头

发表于 5年以前  | 总阅读数:1333 次

现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可,不需要修改程序代码,成本很低。本文介绍一些这样的响应头:

1. Strict-Transport-Security

HTTP Strict Transport Security,简称为HSTS。它允许一个HTTPS网站,要求浏览器总是通过HTTPS来访问它。现阶段,除了C hrome浏览器,Firefox4+,以及Firefox的NoScript扩展都支持这个响应头。

我们知道HTTPS相对于HTTP有更好的安全性,而很多HTTPS网站,也可以通过HTTP来访问。开发人员的失误或者用户主动输入地址,都有可能导致用户以HTT P访问网站,降低了安全性。一般,我们会通过Web Server发送301/302重定向来解决这个问题。现在有了HSTS,可以让浏览器帮你做这个跳转,省一次H TTP请求。另外,浏览器本地替换可以保证只会发送HTTPS请求,避免被劫持。

要使用HSTS,只需要在你的HTTPS网站响应头中,加入下面这行:


strict-transport-security: max-age=16070400; includeSubDomains

includeSubDomains是可选的,用来指定是否作用于子域名。支持HSTS的浏览器遇到这个响应头,会把当前网站加入HSTS列表,然后在max-age 指定的秒数内,当前网站所有请求都会被重定向为https。即使用户主动输入http://或者不输入协议部分,都将重定向到`https:// `地址。

Chrome内置了一个HSTS列表,默认包含Google、Paypal、Twitter、Linode等等服务。我们也可以在Chrome输入chrome ://net- internals/#hsts,进入HSTS管理界面。在这个页面,你可以增加/删除/查询HSTS记录。例如,你想一直以https访问某网址,通过"add Domain"加上去就好了。查看Chrome内置的全部HSTS列表,或者想把自己的网站加入这个列表,请点这里。

2. X-Frame-Options

X-Frame-Options,是为了减少点击劫持(Clickjacking)而引入的一个响应头。Chrome4+、Firefox3.6.9+、IE8+均支 持,详细的浏览器支持情况看这里。使用方式如下:


x-frame-options: SAMEORIGIN

这个响应头支持三种配置:

  • DENY:不允许被任何页面嵌入;
  • SAMEORIGIN:不允许被本域以外的页面嵌入;
  • ALLOW-FROM uri:不允许被指定的域名以外的页面嵌入(Chrome现阶段不支持);

如果某页面被不被允许的页面以