HTTP协议安全相关header详解

http协议有许多可以增强网站安全性,减少用户被攻击的安全策略,本文将依次介绍

1、强制使用https传输,HTTP Strict Transport Security (HSTS)

在各种劫持小广告+多次跳转的网络环境下,可以有效缓解此类现象。同时也可以用来避免从https降级到http攻击(SSL Strip)

服务器设置响应头:Strict-Transport-Security: max-age=31536000 ; includeSubDomains​ 即可开启

网站(譬如百度)启用该策略后且在有效期之内,用户在浏览器地址栏输入baidu.com后,浏览器不会经历该过程:baidu.com--->http://www.baidu.com--->https://www.baidu.com;而是直接访问https://www.baidu.com

该策略只适用于80、443端口。

有些网站并不是全站https比如图片,毕竟使用https对服务器性能要求更高,中间人攻击仍然可以修改用户看到的图片

ps:在chrome浏览器和let's encrypt的推动下,不久的将来希望可以进入https时代

这里有个更详细的:https://www.jianshu.com/p/caa80c7ad45c

 

2、HTTPS证书绑定,Public Key Pinning Extension for HTTP (HPKP)

浏览器依据证书链认证https证书,任何合法证书链均可以给某个域名(baidu.com)颁发一个https证书。如果要提高安全性,减少中间人攻击,我们可以明确指定证书指纹提供给浏览器进行身份验证

服务器设置响应头:​Public-Key-Pins: pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM="; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; report-uri="http://example.com/pkp-report"; max-age=10000; includeSubDomains

有效期设置过长,可能会存在域名证书失效,网站不可访问等特殊情况

 

3、跨站XSS防护,X-XSS-Protection

开启浏览器端的xss防护,减少反射xss对用户的危害(chrome浏览器默认开启)

服务器配置响应头:X-XSS-Protection: 1; mode=block / 1; report=http://[YOURDOMAIN]/your_report_URI 

 

4、阻止网站被嵌套,X-Frame-Options

网站被嵌套,可能出现clickhijacking等攻击

服务器配置响应头:X-Frame-Options: deny/sameorigin/allow-from: DOMAIN

因为​X-Frame-Options只检测与top窗口的关系,若有多层嵌套victim{hacker{victim,则可以绕过,

另外主页面可以监听事件onBeforeUnload可以取消iframe的跳转;iframe的sandbox属性可以禁用iframe中的js

所以需要配合csp规则的Content-Security-Policy: frame-ancestors 'self';

 

5、配置多种安全策略,Content-Security-Policy

可以定义许多安全策略,script-src,frame-src ,referrer等

服务器配置响应头:Content-Security-Policy: script-src 'self'

 

6、响应内容探测,X-Content-Type-Options

有些服务器响应内容未设置content-type,浏览器会自动检测内容type(MIME自识别),会出现编码相关的安全问题(IE和chrome会忽略content-type 自行推测网页格式、编码等,会出现IE的utf-7 xss绕过等bug)

服务器配置响应头:X-Content-Type-Options: nosniff

 

其他参考 http://blog.sina.com.cn/s/blog_6cd4a7350102xgab.html

你可能感兴趣的:(网络安全)