为网站部署 HSTS 预防中间人重定向攻击

HSTS 可以防止默认以 HTTP 方式访问站点的时候可被中间人重定向攻击的问题。

http 是明文传输的,为了防止数据被截获和修改,我们会为站点做 https 同时做上 https 跳转。然而在刚打开网站的时候是以 http 方式,可以被攻击者重定向到中间代理服务器上并伪造一个假证书以及 XSS。

于是乎有了 HSTS ( HTTP StrictTransportSecurity ),通过在 HTTP Header 上添加 StrictTransportSecurity 字段。可以告诉浏览器禁止以 HTTP 方式访问资源,同时维持一段时间里浏览器只会以 https 方式访问该站点(http 会自动被浏览器 307 重定向)。

只添加 Header 通知浏览器使用 HTTPS 并没有完全预防,在访问一个未知站点的时候还是会使用 HTTP 。所以主流浏览器会内置 HSTS 主机列表并定期更新。

 

Nginx 配置

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

用浏览器访问一次站点,在以后的 63072000 秒浏览器都会用 HTTP 方式访问站点。

IncludeSubDomains 包含了所有子域名以后访问都使用HTTPS

preload 允许浏览器把站点预加载到 HSTS 主机列表

 

之后在这里申请加入 HSTS 预加载列表 https://hstspreload.org

 

相关文章

  • 没有相关文章 :(
0 条评论
    发表一条评论