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以查看结果。

【已解决】“X-Content-Type-Options”头缺失或不安全_javascript