Appscan是一款安全漏洞扫描软件,由IBM公司研发,后又被卖给了印度公司HCL。
在web安全测试中,今天我们说下扫描结果中包含X-Content-Type-Options请求头header的缺失或不安全的时候,我们该如何应对。
风险:可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置;可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息。
技术原因:未设置此header时,会加载所有script文件,即使它的MIME不是text/javascript等。运行潜在的脚本文件,会存在丢失数据的风险。
简单理解为:通过设置”X-Content-Type-Options: nosniff”响应标头,对 script 和 styleSheet 在执行是通过MIME 类型来过滤掉不安全的文件。
X-Content-Type-Options: nosniff
如果响应中接收到 “nosniff” 指令,则浏览器不会加载“script”文件,除非 MIME 类型匹配以下值之一:
- “application/ecmascript”
- “application/javascript”
- “application/x-javascript”
- “text/ecmascript”
- “text/javascript”
- “text/jscript”
- “text/x-javascript”
- “text/vbs”
- “text/vbscript”
Nginx Web服务器
- 在服务器块下的nginx.conf中添加以下参数
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;
}
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;
}
保存nginx.conf文件, 然后重新启动Nginx以查看结果。