You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用Checkmarx扫描提示HSTS Header缺失问题的解决方法

解决Checkmarx扫描提示「缺失HSTS Header」漏洞的问题

问题背景

React应用执行Checkmarx扫描后,被提示「缺失HSTS Header」漏洞,报错指向前端代码中尝试设置HSTS头的逻辑,但在Chrome开发者工具中查看响应头,却能看到已存在strict-transport-security: max-age=31536000 ; includeSubDomains。

代码问题分析

先看报错指向的代码:

const client = async (endpoint, customConfig, isStaticContent) => {
     return fetch(fullUrl, config).then((response) => {
          if (typeof response?.setHeader === 'function') {
            response?.setHeader(
                'Strict-Transport-Security',
                'max-age=63072000', //error showing for this line
                'includeSubDomains'
            )
          }
     })
}

这段代码存在本质错误:浏览器端的fetch返回的Response对象是只读的,没有setHeader方法。也就是说,这段逻辑根本不会执行,你在Chrome里看到的HSTS头,是来自服务器(如Nginx、Apache、CDN)的配置,和这段前端代码无关。

Checkmarx扫描到这段无效代码后,可能因为逻辑错误判定为HSTS头未正确设置,从而触发误报。

解决方案

1. 移除前端无效代码

直接删掉这段尝试修改响应头的逻辑,因为它在浏览器环境下完全不起作用,反而会被扫描工具误判。

2. 确认服务器端HSTS配置的合规性

确保服务器端的HSTS配置满足安全要求:

  • max-age建议设置为至少63072000(2年),当前你看到的是31536000(1年),可以调整到更安全的时长
  • 保留includeSubDomains参数,确保所有子域名都强制使用HTTPS
  • 若需要更强的安全保障,可添加preload参数(需提前提交到HSTS预加载列表)

3. 针对Checkmarx误报提交申诉

如果调整服务器配置并移除无效代码后,Checkmarx仍提示该漏洞,可以:

  • 提供Chrome开发者工具中响应头的截图
  • 提供服务器端HSTS配置的截图或配置代码
  • 提交给Checkmarx扫描平台,标记该漏洞为误报

内容的提问来源于stack exchange,提问作者Akshay phalphale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:35:13