Azure 阻止从用户代理 Mozilla/5.0 到应用服务的 POST 请求

问题描述 投票:0回答:2

我有一个 Azure 应用服务,具有基于 Azure Active Directory 的强制身份验证。它为 API 服务器和调用该服务器的 Web 应用程序提供服务。

所有的 GET 工作都完美,但是 POST 都被拒绝了

403 Forbidden
。 Cookie 已正确设置以通过身份验证检查。

奇怪的是,当我用 Postman 重放 POST 时,他们成功了。 我可以缩小导致拒绝的差异:

每当

User-Agent
标题为
Mozilla/5.0

为什么Azure中有这样的机制?如何停用?

javascript azure http security web
2个回答
3
投票

深入研究建议后,我可以验证这不是 CORS 问题,也不完全是需要更改的用户代理。

实际上 Chrome 浏览器自 2022-06-06 起不支持 User-Agent 更新,因此无法选择此选项。

解决方案的想法来自https://github.com/Azure/azure-functions-host/issues/1602#issuecomment-309532954

并专注于修复,在

App Service
/
Authentication
:

  1. 身份验证设置(编辑)
  2. 允许的外部重定向 URL:添加
    https://{name}.azurewebsites.net

此后,POST 请求生效。


0
投票

我在非跨源场景中遇到了同样的问题,但对我来说Benjam的答案不起作用,因为(后来证明)浏览器既没有发送源(实际上发送了

null
)也没有发送引用标头 - 因此没有任何内容与重定向 URL 匹配。

我建议检查并评估 Benjam 的答案中提到的线程中列出的所有 CSRF 规则

就我而言,问题是

Referrer-Policy: no-referrer
设置,导致浏览器忽略引用标头。放宽政策后,POST 请求就通过了。

© www.soinside.com 2019 - 2024. All rights reserved.