天天看点

HTTP网络设置

1、HTTP strict-transport-security (HSTS)

max-age=16070400;includeSubDomains    严格安全传输  用来抵御SSL剥离攻击 包括子域名

该方式的一些不足

(1)用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访问。解决这个不足目前有两种方案,一是浏览器预置HSTS域名列表,Google Chrome、Firefox、Internet Explorer和Spartan实现了这一方案。二是将HSTS信息加入到域名系统记录中。但这需要保证DNS的安全性,也就是需要部署域名系统安全扩展。截至2014年这一方案没有大规模部署。

(2)由于HSTS会在一定时间后失效(有效期由max-age指定),所以浏览器是否强制HSTS策略取决于当前系统时间。部分操作系统经常通过网络时间协议更新系统时间,如Ubuntu每次连接网络时,OS X Lion每隔9分钟会自动连接时间服务器。攻击者可以通过伪造NTP信息,设置错误时间来绕过HSTS。解决方法是认证NTP信息,或者禁止NTP大幅度增减时间。比如Windows 8每7天更新一次时间,并且要求每次NTP设置的时间与当前时间不得超过15小时。

2、Content-Security-Policy 内容安全策略 default-src  ‘self’

该响应头主要用来定义页面可以加载哪些资源,减少XSS攻击

  • default-src

     限制全局,默认所有都会使用这种规则
  • script-src

     限制JavaScript的源地址。
  • style-src

     限制层叠样式表文件源。
  • img-src

     限制图片和图标的源地址

限制规则

(1)default-src ‘self’;只允许同源下的资源

(2)script-src ‘self’; 只允许同源下的js

(3)script-src ‘self’ www.xxx.com; 允许同源以及指定地址下的js加载

(4)default-src ‘none’; script-src ‘self’; connect-src ‘self’; img-src ‘self’; style-src ‘self’;

3、X-Content-Type-Options  nosniff

nosniff

下面两种情况的请求将被阻止:

  • 请求类型是"

    style

    " 但是 MIME 类型不是 "

    text/css

    ",
  • script

    " 但是 MIME 类型不是javascript mime类型  

4、X-XSS-Protection  

  • 0(禁用XSS过滤器/审核员)
  • 1(删除不安全的部分;如果没有X-XSS-Protection标题,ie8中是默认设置)
  • 1; mode = block(如果找到XSS,则不要渲染文档)

5、X-Frame-Options 

X-Frame-Options SAMEORIGIN; 允许同域嵌套

X-Frame-Options ALLOW-FROM http://XXX.com/;允许单个域名iframe嵌套

X-Frame-Options "ALLOW-FROM http://XXX1. com/,https://XXX2. com/";允许多个域名iframe嵌套,注意这里是用逗号分隔

6、跨域设置

怎么才算跨域:

  1. 请求协议

    http,https

    的不同
  2. domain

  3. 端口

    port

Access-Control-Allow-Origin(标识允许哪个域的请求)  * 

Access-Control-Allow-Credentials:true  意味这将cookie开放给了所有的网站

Access-Control-Allow-Methods 允许的方法访问

Access-Control-Max-Age   返回结果可以用于缓存的最长时间,单位是秒

Access-Control-Allow-Headers   可支持的请求首部名字。请求头会列出所有支持的首部列表,用逗号隔开。