我们有一个 Docker 应用程序,我们正在通过 EB CLI 和 Docker 撰写文件将其部署到 AWS。 EC2 实例前面有一个负载均衡器,用于设置 SSL 并将规则转发到不同的容器。
一切都在运行,但当我使用 ZAP 扫描时,它说 CORS 标头存在严重警报。 ZAP 工具尝试使用随机生成的 Origin 发出请求,并且应用程序使用该组成的 Origin 的 Access-Control-Allow-Origin 进行响应。基本上,该应用程序允许所有来源,这是一个潜在的漏洞。
我已经在本地运行容器进行了测试,ZAP 工具没有发现这个问题。这让我对 LB 或 Docker 在 EC2 上运行的方式产生怀疑。我尝试过在线搜索和文档搜索,但找不到任何有帮助的内容。我还通过控制台进行了搜索,看看我可以调整哪些设置,但没有找到任何与 CORS 相关的内容。
如何更改 CORS 设置以不允许所有来源?
我认为这是 AWS 中的设置,因为扫描仅在此处拾取 CORS 警报,而不是在本地运行时拾取 CORS 警报。我花了很多时间查看文档等,得出的结论是,这允许所有来源无法在 LB 的 AWS 端设置。
它必须来自应用程序。事实证明,存在几个不同版本的应用程序配置,并且云中使用的版本具有此 CORS 规则。我现在已经整理好了,所以每个人都使用相同的配置,而不需要允许所有来源规则,并且 ZAP 扫描现在通过了。