> X-Content-Type-Options响应头缺失
> 参考:https://www.cnblogs.com/jerry-0910/p/15624810.html
详情描述
X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对
MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME
类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。
X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击
解决办法:
将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。
# add_header X-Content-Type-Options: nosniff;
# 如果服务器发送响应头 “X-Content-Type-Options: nosniff”,则 script 和 styleSheet
# 元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的攻击。
具体操作
> 格式如下
location / {
...
add_header X-Content-Type-Options nosniff;
...
}
> HTTP X-Download-Options 响应头缺失
详情描述
Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options会导致浏览器提供的安全特性失效,容易遭受 Web 前端黑客攻击的影响。
可以使用X-Download-Options标头下载所请求的数据。 X-Download Options标头可在Internet Explorer 8及更高版本的浏览器中使用。
这个标头就像一个深度防御机制,特别适合于允许用户上传内容的应用程序,避免用户直接打开其上传的包含恶意代码的文件,
通过向X-Download-Options HTTP头添加noopen指令来删除用户必须打开文件的选项。
解决方法:
add_header X-Download-Options noopen
location / {
...
add_header X-Download-Options "noopen" always;
...
}
> HTTP X-Permitted-Cross-Domain-Policies 响应头缺失
参考:
https://zhuanlan.zhihu.com/p/335165168
http://t.csdn.cn/WIEdy
详情描述
X-Permitted-Cross-Domain-Policies
用于指定当不能将crossdomain.xml文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。
常用的配置值:master-only 只允许使用主策略文件(/crossdomain.xml)
解决方法
add_header X-Permitted-Cross-Domain-Policies master-only;
location / {
...
add_header X-Permitted-Cross-Domain-Policies master-only;
...
}
> HTTP Content-Security-Policy 响应头缺失
参考:
https://www.cnblogs.com/oneapm/p/5168793.html
http://t.csdn.cn/Tt7Rv
location / {
...
add_header Content-Security-Policy: default-src 'self';
...
}
> HTTP Strict-Transport-Security 响应头缺失
参考:
http://www.04007.cn/article/1141.html
https://zhuanlan.zhihu.com/p/428634096
问题描述
HTTP Strict-Transport-Security 可以限定浏览器只能通过HTTPS访问当前资源,禁止HTTP方式。
server {
listen 443;
server_name ds.v.com;
location / {
...
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
...
}
}
> HTTP X-XSS-Protection 响应头缺失
参考:
http://t.csdn.cn/juYoW
https://zhuanlan.zhihu.com/p/428634427
server {
listen 443;
server_name ds.v.com; # 驾驶安全
location / {
client_body_timeout 7200;
proxy_read_timeout 7200;
proxy_send_timeout 7200;
proxy_pass http://127.0.0.1:9005/;
proxy_cookie_path / "/; httponly; secure; SameSite=Lax";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection 1; # 添加这两行
add_header X-XSS-Protection mode=block;
}
ssl_certificate "/etc/nginx/ssl/ds/ds.v.com.pem";
ssl_certificate_key "/etc/nginx/ssl/ds/ds.v.com.key";
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_protocols TLSv1.3;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
> HTTP Referrer-Policy 响应头缺失
> # nginx中增加对Referrer的控制
add_header Referrer-Policy "origin-when-crossorigin";
add_header 'Referrer-Policy' 'origin';
add_header 'Referrer-Policy' 'unsafe-url';