由于服务器管理员没能正确设置 HTTP Strict Transport Security (HSTS),现今大量的 HTTPS 流量都能被轻松劫持。 
HSTS 是一个被当前大多数 Web 浏览器所支持的 Web 安全策略,它可以帮助 Web 管理员保护他们的服务器和用户避免遭到 HTTPS 降级、中间人攻击和 Cookie 劫持等 HTTPS 攻击的危害。 
1、在 Apache2 中设置 HSTS 
    编辑你的 apache 配置文件,完成后进行重启服务。 
- <VirtualHost _default_:443>
 - Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
 - </VirtualHost>
 - <VirtualHost *:80>
 - [...]
 - <IfModule mod_rewrite.c>
 - RewriteEngine On
 - RewriteCond %{HTTPS} off
 - RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 - </IfModule>
 - </VirtualHost>
 
2、在 Lighttpd 中设置 HSTS 
    对于 lighttpd 来说很简单,将下述配置增加到你的 Lighttpd 配置文件,完成后进行重启服务
- server.modules += ( "mod_setenv" )
 - $HTTP["scheme"] == "https" {
 - setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=31536000; includeSubdomains; preload")
 - }
 
3、在 Nginx 中设置 HSTS 
     Nginx 甚至更简单,将下述行添加到你的 HTTPS 配置的 server 块中,完成后进行重启服务。 
- 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 通道。
