后端,环境配置

Nginx、Apache启用HSTS

1、什么是HSTS

HTTPS(SSL和TLS)确保用户和网站通讯过程中安全,使攻击者难于拦截、修改和假冒。当用户手动输入域名或http://链接,该网站的第一个请求是未加密的,使用普通的http。最安全的网站立即发送回一个重定向使用户引向到https连接,然而,中间人攻击者可能会攻击拦截初始的http请求,从而控制用户后续的回话。自然而然HSTS应运而生为了解决这一潜在的安全问题。即时用户输入域名或http连接,浏览器将严格的升级到https连接。

2、HSTS如何工作的

HSTS策略是从安全的HTTPS站点发送的HTTP响应头部发布的。

Strict-Transport-Security: max-age=31536000

当浏览器从HTTPS站点看到这个头部,就知道该域名只能通过HTTPS(SSL 或者 TLS)访问了。并将此信息缓存到31536000,也就是1年。

可选的参数includeSubDomains告诉浏览器该策略适用于当前域下的所有子域。

Strict-Transport-Security: max-age=31536000; includeSubDomains

3、配置HSTS

3.1、Nginx配置HSTS

在server端添加该头部,并重启服务。

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

3.2、Apache2配置HSTS

#先开启模块:
LoadModule headers_module modules/mod_headers.so

<VirtualHost 0.0.0.0:443>
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>

然后,重启Apache服务。

4、设置X-Frame-Options 头部

X-Frame-Options 头部添加到HTTPS站点,确保不会嵌入到frame 或 iframe,避免点击劫持,以确保网站的内容不会嵌入到其他网站。

4.1、Apache
Header always set X-Frame-Options DENY
4.2、Nginx
add_header X-Frame-Options "DENY";

回复

  1. 流星Aday 流星Aday
    Chrome 63 10

    ヾ(≧∇≦*)ゝ

This is just a placeholder img.