我们公司保持 PCI 合规性(以及其他一些公司)。作为我们最近的安全审核的一部分,我们的基础设施团队和审核员确定应完全禁用 OPTIONS 标头,因为它构成了安全威胁。
我们在 Angular 6/7 网站上使用 .NET Web API(在多个子域上)。现在禁用 OPTIONS 标头后,来自 Angular 的预检调用将被拒绝,并且我们的应用程序在对另一个子域的第一次 API 调用时失败(例如身份验证,这是我们的第一个功能之一,位于 auth.mycompany.com 上,我们的应用程序位于应用程序上) .mycompany.com)。
我已经阅读了相当多的内容(如果有人将其标记为重复项,如果它能带来解决方案,我会很高兴:)但是,我还没有找到任何可行的解决方案。大多数文章都要求将有效的 OPTIONS 调用列入白名单(为什么 HTTP 选项请求不安全 和 https://security.stackexchange.com/questions/138567/why-should-the-options-method-not-be-allowed- on-an-http-server 是两个示例)或在同一子域上设置代理(在 Angular 2 中使用基本身份验证进行预检 CORS 请求)。
我的问题是,有没有办法配置 OPTIONS 标头,让我们能够通过安全扫描,同时仍然允许来自 Angular 的 CORS 调用?
我们公司保持 PCI 合规性(以及其他一些公司)。作为我们最近的安全审核的一部分,我们的基础设施团队和审核员确定应完全禁用 OPTIONS 标头,因为它构成了安全威胁。
我同意跨所有域的所有 OPTIONS 的广泛块是有效的安全默认值,但它们应该允许某些 OPTIONS 请求通过正确的服务器,因为它是 HTTP 规范的一部分。
一些安全团队会阻止所有 POST 请求作为标准做法,您必须请求允许哪些 POST 请求进入网络。
我们无法告诉您这是否是一个好政策。
我的问题是,有没有办法配置 OPTIONS 标头,让我们能够通过安全扫描,同时仍然允许来自 Angular 的 CORS 调用?
这是向另一个域发出请求时网络浏览器执行的标准安全检查。这是你无法改变的。
这是您此时的选项列表
在实施上述任何操作之前,请先咨询您的安全团队。