简洁版:
请按需添加,添加完成后重启nginx进行一下测试,看是否影响网站访问及功能。
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; style-src 'self' 'unsafe-inline'";
add_header Set-Cookie "Secure; HttpOnly; SameSite=Strict" always; # 缺少Secure属性
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; # 头缺失
add_header Referrer-Policy "no-referrer"; # Referral缺失
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # 加密算法
ssl_protocols TLSv1.2 TLSv1.3; # tls版本太老
server_tokens off; # 过滤不必要的信息
fastcgi_hide_header X-Powered-By;
详细版:
# 添加Secure属性到Cookie,您的Nginx服务器应该会在所有Cookie中包含Secure属性,确保它们只在HTTPS连接下发送
add_header Set-Cookie "Secure; HttpOnly; SameSite=Strict" always;
# SSL密码套件配置,
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
#EECDH+AESGCM和EDH+AESGCM 表示使用基于椭圆曲线的密钥交换 (Ephemeral Elliptic-Curve Diffie-Hellman) 和基于有限域的密钥交换 (Ephemeral Diffie-Hellman) 与AES-GCM密码组合。这些密码组合通常被认为是安全的。
# AES256+EECDH和AES256+EDH 表示使用256位AES加密与相应的密钥交换方法。256位AES通常被认为是强大的加密算法。
# 头缺失
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# HTTP Strict-Transport-Security(HSTS)头部是一个重要的安全标头,用于强制客户端(例如浏览器)在与网站通信时使用HTTPS,从而提高通信的安全性
# max-age:指定HSTS策略的有效期,以秒为单位。上述示例中的max-age为一年。
# includeSubDomains:这个可选参数告诉浏览器包括子域名在内,强制它们也使用HTTPS。
# preload:这个参数表示您希望将您的域名添加到浏览器的HSTS预加载列表中,以进一步增强安全性。要将域名预加载,您需要访问 HSTS Preload Submission 网站并遵循指南。
# 防止web信息泄露
server_tokens off;
# 防止代码框架信息泄露
fastcgi_hide_header X-Powered-By;
# tls版本太老
ssl_protocols TLSv1.2 TLSv1.3;
# 头缺失,"Referrer-Policy" 是一个用于控制浏览器在导航到其他网站时如何处理引荐信息的 HTTP 头部。这有助于提高隐私和安全,减少来自恶意网站的信息泄露和跨站请求伪造(CSRF)攻击的风险。
add_header Referrer-Policy "no-referrer"; # 不发送本站信息
# 防止分块传输,分块会被拦截然后被攻击
chunked_transfer_encoding off;