如何在AWS API Gateway中处理自定义头部?

0

【以下的问题经过翻译处理】 我使用 API 网关为调用 lambda 函数的应用程序构建业务逻辑。为了安全保证,我已经从我的网络安全专家那里生成了 API 基本 URL 的VAT报告。共检测到 9 个漏洞,包括 4 个中级漏洞、3 个低级漏洞和 2 个信息级漏洞。

  1. (CSP) 通配符指令
  2. 未设置内容安全策略 (CSP) 标头
  3. 跨域错误配置
  4. 缺少反点击劫持标头
  5. 服务器通过“X-Powered-By”HTTP 响应标头字段泄露信息
  6. 时间戳泄露——Unix
  7. X-Content-Type-Options 标头丢失
  8. 字符集不匹配
  9. 重新检查缓存指令

如何消除这些所有漏洞? 是否需要设置或定义自定义标头? (如果是,那么我可以在哪里以及如何做到这一点,可以是在 API 网关控制台或 lambda 脚本中,还是在我的客户端或调用此 API 网关基本 URL 的应用程序端代码中)?

profile picture
专家
已提问 5 个月前3 查看次数
1 回答
0

【以下的回答经过翻译处理】 这取决于您的要求,以及您是希望标头作为客户端请求的一部分发送,还是需要在请求到达 API 网关之前添加标头。

如果您需要在缺少某些标头的情况下阻止客户端请求,您可以将 WAF ACL 与 API 网关相关联并定义规则以阻止没有强制标头的请求

可以参考这两个指导:

https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html

https://aws.amazon.com/premiumsupport/knowledge-center/waf-block-http-requests-no-user-agent/

如果要求即使客户端未发送标头,也需要在请求到达 API 网关之前将标头添加到请求中,您可以使用 Lambda@Edge 在 API 网关前面使用 Cloudfront 分配来实现。

查看这些以获取指导

https://aws.amazon.com/blogs/networking-and-content-delivery/adding-http-security-headers-using-lambdaedge-and-amazon-cloudfront/(此示例显示响应标头,但您可以使用与请求标头类似的概念,但有一些变化)

https://docs.amazonaws.cn/en_us/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-how-it-works-tutorial.html

Lambda@Edge 函数的一些示例 - https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-examples.html

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则