选项 headers 在 Web 服务器上禁用(.NET Web API 和 Angular)
OPTIONS headers disabled on web server (.NET Web API and Angular)
我们公司(以及其他一些公司)保持 PCI 合规性。作为我们最近的安全审计的一部分,我们的基础架构团队和审计员确定应该完全禁用选项 header,因为它会构成安全威胁。
我们使用 .NET web APIs(在多个子域上)和 Angular 6/7 网站。现在禁用选项 header,来自 Angular 的预检调用被拒绝,我们的应用程序在第一次 API 调用另一个子域时失败(例如,身份验证,这是我们的第一个我们的应用程序在 app.mycompany.com 上运行并在 auth.mycompany.com 上运行。
我读了很多书(如果有人将其标记为重复,如果它能找到解决方案,我会很高兴 :))但是,我无法找到任何可行的解决方案.大多数文章都要求将有效的 OPTIONS 调用列入白名单 ( and https://security.stackexchange.com/questions/138567/why-should-the-options-method-not-be-allowed-on-an-http-server are two examples) or setting up a proxy on the same subdomain ()。
我的问题是,有没有一种方法可以配置选项 header,使我们能够通过安全扫描并仍然允许来自 Angular 的 CORS 调用?
在此先感谢您的帮助!
Our company maintains PCI compliance (along with a few others). As part of our most recent security audit it was determined by our infrastructure team and auditors that OPTIONS headers should be completely disabled as it posed a security threat.
我同意跨所有域广泛阻止所有 OPTIONS 是有效的安全默认设置,但它们应该允许某些 OPTIONS 请求到达正确的服务器,因为它是 HTTP 规范的一部分。
一些安全团队阻止所有 POST 请求作为标准做法,您必须请求允许哪些 POST 请求进入网络。
我们无法告诉您这是不是一个好政策。
My question is, is there a way to configure the OPTIONS header that will allow us to pass our security scans and still allow our CORS calls from Angular?
这是在向另一个域发出请求时由 Web 浏览器执行的标准安全检查。这是你无法改变的。
这是您目前的选项列表
- 请求为有问题的网络服务器允许选项。告诉安全团队,服务器将被修改以产生本质上严格并确保安全的 OPTIONS 响应。
- 在同一域中托管 Angular 网络应用程序,这样浏览器就不会发出 OPTIONS 请求。
- 更改所有 API 调用,以便仅向 API 发出没有正文的 GET 请求(空 GET 请求免于 OPTIONS 飞行前请求)。
- 在与 Angular 应用程序相同的域上创建一个 API 代理,并让代理对其他域进行所有 API 调用(后端服务器不不要提出 OPTIONS 请求)。
在实施上述任何一项之前,请先咨询您的安全团队。
我们公司(以及其他一些公司)保持 PCI 合规性。作为我们最近的安全审计的一部分,我们的基础架构团队和审计员确定应该完全禁用选项 header,因为它会构成安全威胁。
我们使用 .NET web APIs(在多个子域上)和 Angular 6/7 网站。现在禁用选项 header,来自 Angular 的预检调用被拒绝,我们的应用程序在第一次 API 调用另一个子域时失败(例如,身份验证,这是我们的第一个我们的应用程序在 app.mycompany.com 上运行并在 auth.mycompany.com 上运行。
我读了很多书(如果有人将其标记为重复,如果它能找到解决方案,我会很高兴 :))但是,我无法找到任何可行的解决方案.大多数文章都要求将有效的 OPTIONS 调用列入白名单 ( and https://security.stackexchange.com/questions/138567/why-should-the-options-method-not-be-allowed-on-an-http-server are two examples) or setting up a proxy on the same subdomain (
我的问题是,有没有一种方法可以配置选项 header,使我们能够通过安全扫描并仍然允许来自 Angular 的 CORS 调用?
在此先感谢您的帮助!
Our company maintains PCI compliance (along with a few others). As part of our most recent security audit it was determined by our infrastructure team and auditors that OPTIONS headers should be completely disabled as it posed a security threat.
我同意跨所有域广泛阻止所有 OPTIONS 是有效的安全默认设置,但它们应该允许某些 OPTIONS 请求到达正确的服务器,因为它是 HTTP 规范的一部分。
一些安全团队阻止所有 POST 请求作为标准做法,您必须请求允许哪些 POST 请求进入网络。
我们无法告诉您这是不是一个好政策。
My question is, is there a way to configure the OPTIONS header that will allow us to pass our security scans and still allow our CORS calls from Angular?
这是在向另一个域发出请求时由 Web 浏览器执行的标准安全检查。这是你无法改变的。
这是您目前的选项列表
- 请求为有问题的网络服务器允许选项。告诉安全团队,服务器将被修改以产生本质上严格并确保安全的 OPTIONS 响应。
- 在同一域中托管 Angular 网络应用程序,这样浏览器就不会发出 OPTIONS 请求。
- 更改所有 API 调用,以便仅向 API 发出没有正文的 GET 请求(空 GET 请求免于 OPTIONS 飞行前请求)。
- 在与 Angular 应用程序相同的域上创建一个 API 代理,并让代理对其他域进行所有 API 调用(后端服务器不不要提出 OPTIONS 请求)。
在实施上述任何一项之前,请先咨询您的安全团队。