如何在AWS API Gateway配置自定义Header修复检测到的安全漏洞
API Gateway集成Lambda场景下HTTP安全漏洞修复方案
核心配置位置选择结论
所有响应类安全配置优先在API Gateway控制台统一配置,不推荐在Lambda业务代码中配置,禁止在客户端侧配置:
- 客户端侧配置完全无效:安全扫描检测的是服务端返回的响应内容,客户端自定义头不会改变服务端响应逻辑,无法修复漏洞。
- Lambda脚本配置可生效但维护成本高:需要给每个关联的Lambda函数单独加响应头逻辑,后续新增接口、更新版本时极易漏配,多环境下容易出现配置不一致。
- API Gateway统一配置是最优解:一次配置覆盖该API下所有路由、所有方法的响应,不需要侵入业务代码,后续策略调整只需要修改网关一处配置,无遗漏风险。
REST API配置入口:选中对应API实例 → 进入「网关响应」模块 → 配置默认响应头映射,或在集成响应中统一配置头覆盖规则;HTTP API配置入口:选中对应API实例 → 进入「路由」→「默认响应头」页面添加规则即可。
9项漏洞逐个修复方案
- (CSP) Wild Card Directive(CSP通配符规则漏洞)
问题原因:现有Content-Security-Policy策略使用*通配符,未对资源加载来源做限制,CSP防护完全失效。
修复方式:移除所有通配符配置,按业务实际场景设置严格规则:如果是纯数据API接口(不返回前端页面),直接设置Content-Security-Policy: default-src 'none';如果返回前端页面,仅添加业务实际需要的脚本、样式、图片、接口来源域名,禁止使用*作为允许来源。 - Content Security Policy (CSP) Header Not Set(CSP头未设置漏洞)
问题原因:响应中未返回CSP头,浏览器无资源加载规则约束,易遭受XSS、资源注入攻击。
修复方式:在API Gateway默认响应头中添加上述配置完成的CSP头即可。 - Cross-Domain Misconfiguration(跨域配置错误漏洞)
问题原因:跨域响应头Access-Control-Allow-Origin被设置为*,允许任意域名跨域访问接口,存在数据泄露风险。
修复方式:在API Gateway的CORS配置模块,将允许的跨域来源替换为业务实际使用的前端域名白名单,禁止使用*全开配置;如果接口不需要给前端跨域调用,直接移除所有CORS相关响应头即可。 - Missing Anti-clickjacking Header(缺失反点击劫持头漏洞)
问题原因:未返回X-Frame-Options头,接口返回的页面可被任意站点嵌入iframe,易遭受点击劫持攻击。
修复方式:在默认响应头中添加X-Frame-Options: DENY;如果业务确实需要被同域名页面嵌入,可设置为SAMEORIGIN,禁止允许任意域名嵌入。 - Server Leaks Information via “X-Powered-By” HTTP Response Header(X-Powered-By头信息泄露漏洞)
问题原因:响应中返回了标识后端技术栈的X-Powered-By头,攻击者可据此针对性匹配已知漏洞发起攻击。
修复方式:在API Gateway响应头映射规则中配置删除X-Powered-By头;如果Lambda返回的响应中自带该字段,同步在Lambda返回逻辑中移除该字段,不要透传给客户端。 - Timestamp Disclosure – Unix(Unix时间戳泄露漏洞)
问题原因:响应头或公开响应体中裸露了纯数字格式的Unix时间戳,可能被攻击者用来推断服务端时间逻辑、敏感凭证生成规则。
修复方式:检查API Gateway默认响应头、Lambda返回内容,删除非业务必须的Unix时间戳字段;如果业务必须返回时间信息,统一使用标准HTTP时间格式,不要在响应头中放置无业务意义的纯数字Unix时间戳。 - X-Content-Type-Options Header Missing(X-Content-Type-Options头缺失漏洞)
问题原因:未返回该头时,浏览器会自动嗅探响应内容的MIME类型,可能将非脚本类型的内容当作脚本执行,引发XSS风险。
修复方式:在默认响应头中添加X-Content-Type-Options: nosniff,所有接口响应强制携带该头。 - Charset Mismatch(字符集不匹配漏洞)
问题原因:响应头中Content-Type声明的字符集和实际响应体使用的字符集不一致,可能导致页面乱码、编码绕过类攻击。
修复方式:在API Gateway统一给Content-Type头加上固定字符集声明,比如JSON接口统一设置为Content-Type: application/json; charset=utf-8,和Lambda实际返回的内容编码保持一致,关闭网关的自动字符集推断逻辑。 - Re-examine Cache Directives(缓存策略需复核漏洞)
问题原因:缓存控制策略配置不合理,比如含用户敏感数据的接口配置了公共缓存规则,或静态资源未设置合理缓存周期。
修复方式:按接口类型配置Cache-Control头:涉及用户敏感数据的接口,统一返回Cache-Control: no-store, no-cache, must-revalidate, private,禁止公共节点缓存敏感内容;静态资源类接口可按业务需要设置合理的max-age缓存周期。
内容的提问来源于stack exchange,提问作者Mr.shakeel
相关产品推荐
相关产品推荐

