Nginx是一个高性能的HTTP和反向代理服务器,通过对其进行适当的配置,可以有效地为站点修复和防范常见的安全漏洞。以下是一些重要的Nginx配置指令,它们可以帮助你增强站点的安全性。


1.png


1. 设置Referrer-Policy响应头


Referrer-Policy是一个HTTP响应头,用于控制浏览器发送的Referer头部的内容。这有助于保护用户隐私和防止信息泄露。


add_header 'Referrer-Policy' 'origin';


2. 启用X-Content-Type-Options


通过设置X-Content-Type-Options响应头为"nosniff",可以防止MIME类型嗅探攻击,即浏览器不会尝试猜测资源的MIME类型。


add_header X-Content-Type-Options "nosniff";


3. 启用X-XSS-Protection


通过添加X-XSS-Protection响应头,并设置其值为"1; mode=block",可以启用浏览器的反射型跨站脚本(XSS)防护功能。


add_header X-XSS-Protection "1; mode=block";


4. 设置X-Frame-Options


X-Frame-Options响应头用于防止点击劫持攻击,确保页面不会被嵌入到恶意框架中。


add_header X-Frame-Options SAMEORIGIN;


5. 设置X-Download-Options


X-Download-Options响应头可以防止浏览器自动打开下载的文件,从而防止恶意文件的执行。


add_header X-Download-Options "noopen" always;


6. 启用Strict-Transport-Security (HSTS)


HSTS强制浏览器使用HTTPS与服务器进行通信,从而防止中间人攻击。


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


7. 设置Permissions-Policy


Permissions-Policy响应头可以控制浏览器功能的使用权限,如地理位置、摄像头等,提高用户隐私保护。


add_header Permissions-Policy "interest-cohort=()";


8. 设置Cross-Origin-Resource-Policy (CORP)


CORP用于限制资源的跨源使用,确保资源只能被同一来源的页面使用。


add_header Cross-Origin-Resource-Policy same-site;


9. 设置Cross-Origin-Opener-Policy (COOP)


COOP用于限制跨源弹窗和标签页的行为,增强跨域安全。


add_header Cross-Origin-Opener-Policy same-site;


10. 设置Cross-Origin-Embedder-Policy (COEP)


COEP控制跨源资源的嵌入策略,提高站点安全性。


add_header Cross-Origin-Embedder-Policy require-corp;


11. 设置Clear-Site-Data


Clear-Site-Data响应头可以请求浏览器清除站点数据,包括cookies、缓存等,有助于用户隐私保护。


add_header Clear-Site-Data "storage";


为了方便复制,以上配置总结如下,可以在nginx的配置文件中加入,加入后一定要记得点击重载配置。


通过Nginx配置为站点修复常见漏洞


设置如下


# 设置Referrer-Policy响应头,控制浏览器发送的Referer头部的内容。


add_header 'Referrer-Policy' 'origin';


# 设置X-Content-Type-Options响应头,防止MIME类型嗅探攻击


add_header X-Content-Type-Options "nosniff";


# 添加X-XSS-Protection响应头,以启用浏览器的反射型跨站脚本(XSS)防护。


add_header X-XSS-Protection "1; mode=block";


# 设置X-Frame-Options响应头,防止点击劫持攻击,仅允许来自同一源(SAMEORIGIN)的框架加载页面。


add_header X-Frame-Options SAMEORIGIN;


# 设置X-Download-Options响应头,阻止浏览器自动打开下载文件。


add_header X-Download-Options "noopen" always;


# 设置Strict-Transport-Security响应头,强制浏览器使用HTTPS进行连接,并包括子域名和预加载功能。


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


# 设置Permissions-Policy响应头,用于控制浏览器功能的使用权限。


add_header Permissions-Policy "interest-cohort=()";


# 设置Cross-Origin-Resource-Policy响应头,限制资源的跨源使用。


add_header Cross-Origin-Resource-Policy same-site;


# 设置Cross-Origin-Opener-Policy响应头,限制跨源弹窗和标签页的行为。


add_header Cross-Origin-Opener-Policy same-site;


# 设置Cross-Origin-Embedder-Policy响应头,控制跨源资源的嵌入策略。


add_header Cross-Origin-Embedder-Policy require-corp;


# 设置Clear-Site-Data响应头,请求浏览器清除站点数据。


add_header Clear-Site-Data "storage";


除了上述的配置之外,还应该注意以下几点来进一步提高网站的安全性:


1、启用SSL/TLS,并确保使用强加密套件。


2、升级Nginx至最新版本,以利用最新的安全修复和改进。


3、配置正确的文件权限,防止未经授权的访问和修改。


4、限制不必要的HTTP方法,如PUT、DELETE等。


5、使用强密码策略,并定期更换密码。


6、监控和记录访问日志,以便及时发现和应对潜在的安全威胁。