Nginx 服务器配置 HTTP Security Headers,新作业教程
HTP Security Headers 安全标头是网站安全的重要组成部分。它们可以保护您免受各种类型的攻击,包括 XSS、SQL 注入、劫持等。
当 Web 浏览器访问网站时,浏览器向 Web 服务器请求该网站,Web 服务器以 HTTP 响应标头进行响应。这些标头包含元数据、状态错误代码、缓存规则等。它还告诉您的浏览器在处理您的网站内容时如何表现。
当您使用网站并与网站交互时,您的浏览器会存储有关该网站的信息。这些 HTTP 安全标头将有助于通信并提高网络安全性。
1。 HTTP 严格传输安全 (HSTS) 标头
指示用户仅通过 HTTP 进行连接,并且也由 Strict-Transport-Security 声明。这将阻止 Web 浏览器通过非 HTTPS 连接访问 Web 服务器。目前所有主要的 Web 浏览器都支持 HTTP 严格传输安全。
通过 HTTP 访问您的网站时,浏览器会忽略 Strict-Transport-Security 标头。这是因为攻击者可以拦截 HTTP 连接并注入或剥离标头。
您还可以通过将以下条目添加到 /etc/nginx/sites-enabled/example.conf 文件中来在 Nginx 上实现 HSTS:
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
保存文件并重新启动 Nginx 以应用更改。
注意:如果要将这些标头应用到特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Headerset 行内添加 add_header 行。
2。内容安全策略 (CSP)
Content-Security-Policy 标头是 X-XSS-Protection 标头的增强版本,提供额外的保护层。强大的标头旨在防止 XSS 攻击和数据注入。 CSP 指示浏览器加载网站上允许的内容。目前所有主要浏览器都提供对内容保护策略的全部或部分支持。
您还可以通过将以下条目添加到 /etc/nginx/sites-enabled/example.conf 文件中来在 Nginx 上实施 CSP:
add_header Content-Security-Policy "default-src 'self'; font-src *;img-src * data:; script-src *; style-src *";
保存文件并重新启动 Nginx 以应用更改。
注意:如果要将这些标头应用到特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Headerset 行内添加 add_header 行。
3。 Chrome、IE 和 Safari 等现代浏览器默认启用 XSS 过滤。当检测到跨站点脚本 (XSS) 攻击时,此标头会阻止页面加载。
根据您的具体需求,您可以选择三种方式来实施 XSS 保护。
- X-XSS-Protection:0: 这将完全禁用过滤器。
- X-XSS-保护:1: 这允许过滤器仅清除可能有害的脚本。
- X-XSS-保护:1; mode=block:这可以完全过滤和阻止页面。
要在 Nginx 中启用 X-XSS-Protection 标头,请将以下行添加到 Nginx 服务器默认配置文件 /etc/nginx/nginx.conf 中:
add_header X-XSS-Protection "1; mode=block";
接下来,重新启动服务 Nginx 将应用更改。
注意:如果要将这些标头应用到特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Headerset 行内添加 add_header 行。
4。 X-Frame-Options
X-Frame-Options 标头用于通过从站点中删除 iframe 来保护您的站点免受点击劫持攻击。目前,所有主流网络浏览器都支持它。通过使用此标头,您可以告诉浏览器不要在框架/iframe 中加载您的页面。
X-Frame-Options 可以通过三种方式进行配置:
- DENY:这将完全禁用 iframe 功能。
- SAMEORIGIN:只有相同出身的人才能使用iframe。
- ALLOW-FROM:这允许仅将来自特定 URL 的页面放入 iframe 中。
要在 Nginx 中启用 X-Frame-Options 标头,请将以下行添加到 Nginx 服务器默认配置文件 /etc/nginx/sites-enabled/example.conf 中:
add_header X-Frame-Options "SAMEORIGIN";
接下来,重新启动 Nginx 服务以应用变化。
注意:如果要将这些标头应用于特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Set Header 行内添加 add_header 行。
5。它用于防止 Internet Explorer 和 Google Chrome 等浏览器嗅探声明的 Content-Type 的响应。 nosniff 标头不能防止所有与嗅探相关的漏洞。除 nosniff 之外,此标头没有有效值。
要将 X-Frame-Options 标头添加到 Nginx,请将以下行添加到 Nginx 服务器默认配置文件 /etc/nginx/sites-enabled/webdock
add_header X-Content-Type-Options nosniff;
接下来,运行 Nginx 服务以应用更改。
注意:如果要将这些标头应用到特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Headerset 行内添加 add_header 行。
6。 Referrer Policy
Referrer-Policy 是一个安全标头字段,用于标识请求当前网页的网址。通过检查引荐来源网址,新网页可以看到请求来自哪里。可以配置Referrer-Policy,使浏览器不向目标站点通知任何URL信息。
要将 Referrer-Policy 标头添加到 Nginx,请将以下行添加到 /etc/nginx/sites-enabled/example 文件中:
add_header Referrer-Policy "strict-origin";
接下来,重新启动 Nginx 服务以应用更改。
注意:如果要将这些标头应用于特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Set Header 行内添加 add_header 行。
7。 Permissions-Policy
Permissions-Policy 是一个新标头,允许网站控制浏览器中可以使用哪些 API 或功能。
要将 Referrer-Policy 标头添加到 Nginx,请将以下行添加到 Nginx 服务器默认配置文件 /etc/nginx/sites-enabled/example:
add_header Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment= ()";
接下来,重复 Nginx 服务以应用更改。
注意:根据您网站的需要更改权限,此处显示的值只是政治示例,没有实际案例依据。如果要将这些标头应用到特定文件,请在 location 块 (Nginx) 或 filesMatch 块 (Apache) 的 Set Header 行内添加 add_header 行。
测试您配置的 HTTP 安全标头
如果您想测试您的站点是否添加了 HTTP 安全标头,您可以使用免费工具 Security Headers 来测试您的配置。只需输入您的网站 URL 并单击“扫描”按钮即可。 ![]()
检查您网站的 HTTP 安全标头并向您显示报告。该工具会创建一个记分卡,显示您的网站发送了哪些 HTTP 安全标头,没有发送哪些。如果您要安装的安全标头列在那里,那么您就完成了。
注意:如果您想获得A您需要将以上所有安全标题添加到网站中。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网