linux

多达 95% 的 HTTPS 链接能被黑客劫持,正确配置使用 HSTS 严格传输安全

发布时间:7年前热度: 3425 ℃评论数:

由于服务器管理员没能正确设置 HTTP Strict Transport Security (HSTS),现今大量的 HTTPS 流量都能被轻松劫持。 
HSTS 是一个被当前大多数 Web 浏览器所支持的 Web 安全策略,它可以帮助 Web 管理员保护他们的服务器和用户避免遭到 HTTPS 降级、中间人攻击和 Cookie 劫持等 HTTPS 攻击的危害。 

1、在 Apache2 中设置 HSTS 

    编辑你的 apache 配置文件,完成后进行重启服务。 

  1. <VirtualHost _default_:443>
  2. Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
  3. </VirtualHost>

  4. <VirtualHost *:80>
  5. [...]
  6. <IfModule mod_rewrite.c>
  7. RewriteEngine On
  8. RewriteCond %{HTTPS} off
  9. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  10. </IfModule>
  11. </VirtualHost>

2、在 Lighttpd 中设置 HSTS 
    对于 lighttpd 来说很简单,将下述配置增加到你的 Lighttpd 配置文件,完成后进行重启服务

  1. server.modules += ( "mod_setenv" )
  2. $HTTP["scheme"] == "https" {
  3. setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=31536000; includeSubdomains; preload")
  4. }

3、在 Nginx 中设置 HSTS 

     Nginx 甚至更简单,将下述行添加到你的 HTTPS 配置的 server 块中,完成后进行重启服务。 

  1. add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";                            

4、X-Frame-Options       
       X-Frame-Options 头部添加到HTTPS站点,确保不会嵌入到frame 或 iframe,避免点击劫持,以确保网站的内容不会嵌入到其他网站。 
      Apache
 
      Header always set X-Frame-Options DENY 
      nginx
 
      add_header X-Frame-Options "DENY"; 
     Lighttpd 
      server.modules += ( "mod_setenv" ) 
      $HTTP["scheme"] == "https" { 
      setenv.add-response-header  = ( "X-Frame-Options" => "DENY") 
        }
 
5、HSTS申请 
    注意,提交的申请并不是自动处理的,人工处理也许需要一周到几周,你可以在这个表单提交查询看看是否列入了。或者在你的 Chrome 浏览器中访问 chrome://net-internals/#hsts 查询是否列入。一般来说,即便你已经列入到这个列表,但是依旧需要几个月才能逐渐从 Chrome 的 canary 更新通道更新到 dev 、beta 等通道,直到最后的 stable 通道。

多达,链接,黑客,劫持,正确,配置,使用,严格,安全

手机扫码访问