Nextcloud几个“HTTP 请求头”告警处理

Linux, PHP, 折腾 2020/07/27

给NC搬了个家,发现又是一堆警告,都是HTTP响应头相关的,不太影响使用,但对于强迫症来说,不解决一下怎么行

一些老旧的告警解决方法之前都写过了,见这里:https://bugxia.com/?s=nextcloud+后台+警告

HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒。
HTTP 请求头 “X-Content-Type-Options” 没有配置为 “nosniff”。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。
HTTP 请求头 “X-Robots-Tag” 没有配置为 “none”。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。
HTTP 请求头 “X-Frame-Options” 没有配置为 “SAMEORIGIN”。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。
HTTP 请求头 “X-Download-Options” 没有配置为 “noopen”。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。
HTTP 请求头 “X-Permitted-Cross-Domain-Policies” 没有配置为 “none”。这是一个潜在的安全或隐私风险,我们建议您调整这项设置。
HTTP 头 “X-XSS-Protection” 未包含 “1; mode=block”。这是一种潜在的安全或隐私风险,因此推荐调整此项设置。
HTTP 头 “Referrer-Policy” 未设置成 “no-referrer”,”no-referrer-when-downgrade”,”strict-origin”,”strict-origin-when-cross-origin” 或 “same-origin”。这会泄露更多的信息。

以下操作均为在Nextcloud网站Nginx配置文件添加

全部请求头设置

add_header Strict-Transport-Security 'max-age=15552000';
add_header X-Content-Type-Options 'nosniff';
add_header X-Robots-Tag 'none';
add_header X-Frame-Options 'SAMEORIGIN';
add_header X-Download-Options 'noopen';
add_header X-Permitted-Cross-Domain-Policies 'none';
add_header X-XSS-Protection '1;mode=block';
add_header Referrer-Policy "no-referrer";

将上述HTTP请求头添加到Nextcloud网站的Nginx配置文件中即可批量解决一堆关于请求头的告警。

以下为逐一释义,部分释义搜索自网络

HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒

通常简称为HSTS,是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP。当设置一个值(秒数)后,表示在浏览器收到这个请求后的多少秒内,凡是访问这个域名下的请求都使用HTTPS请求。

add_header Strict-Transport-Security 'max-age=15552000';

HTTP 请求头 “X-Content-Type-Options” 没有配置为 “nosniff”

浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:”text/html”代表html文档,”image/png”是PNG图片,”text/css”是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。设置为nosniff这个响应头则可以禁用浏览器的类型猜测行为

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

HTTP 请求头 “X-Robots-Tag” 没有配置为 “none”

对于指定的网址,X-Robots-Tag 可以用作 HTTP 标头响应中的一个元素。任何指令只要能够在漫游器元标记中使用,都可以指定为 X-Robots-Tag

add_header X-Robots-Tag 'none';

HTTP 请求头 “X-Frame-Options” 没有配置为 “SAMEORIGIN”

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object>中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

add_header X-Frame-Options 'SAMEORIGIN';

HTTP 请求头 “X-Download-Options” 没有配置为 “noopen”

用于放置直接打开用户下载文件,当设置为 noopen 后,则指定IE 8以上版本的用户不打开文件而直接保存文件。在下载对话框中不显示“打开”选项

add_header X-Download-Options 'noopen';

HTTP 请求头 “X-Permitted-Cross-Domain-Policies” 没有配置为 “none”

用于指定当不能将“crossdomain.xml”文件(当需要从别的域名中的某个文件中读取Flash内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略

add_header X-Permitted-Cross-Domain-Policies 'none';

HTTP 头 “X-XSS-Protection” 未包含 “1; mode=block”

用于启用浏览器的 XSS 过滤功能,以防止 XSS 跨站脚本攻击

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

HTTP 头 “Referrer-Policy” 未设置成 “no-referrer”

Referrer Policy即引用策略,就是从一个页面发出请求时,是否在请求头部定义 Referrer 的设置。很多网站的防盗链机制都是用头部定义 Referrer 来判断是否是盗链。

add_header Referrer-Policy "no-referrer";

完成

本文标签:


4条评论

  • 1657266666 评论于 回复

    阿伯奇环境的话,这些命令该怎么添加?

  • eric 评论于 回复

    请问是用什么软件检查服务器安全的?还是云服务商自带的安全监测工具?

    • Bug侠 评论于 回复

      @eric
      云服务供应商,阿里云腾讯云,自带的安全监测已经很好很强大了,直接用就行。

  • houkai 评论于 回复

    非常实用,漏洞扫描出来也是这些。全部按照你的方法修复了。感谢。

  • 评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)