gpt4 book ai didi

Azure 网站删除自定义 header

转载 作者:行者123 更新时间:2023-12-02 07:33:28 27 4
gpt4 key购买 nike

我正在开发的一个 Azure 网站会检查传入请求的自定义 header ,以决定如何在内部处理该请求。网站服务器正在发送/接收带有客户 header 的请求:

X-HEADER-1: ...
X-HEADER-2: ...

以及其他标准和非标准 header 。

我通过检查 FREB 日志并查看 GENERAL_REQUEST_HEADERS 验证了这一点,其中正确包含了我的自定义 header 。

当应用程序收到请求时,这些自定义 header 不存在。我明确检查其中之一,然后抛出并转储错误消息中的所有可用 header 。

我已经阅读过有关应用程序请求路由模块可以删除这些 header 的信息。我尝试将其添加到网站的 web.config 但仍然不起作用:

<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="HTTP_X_HEADER_1" />
<add name="HTTP_X_HEADER_2" />
</allowedServerVariables>
</rewrite>
</system.webServer>

知道如何将我的 header 列入白名单以让 ARR/Azure 让它们通过吗?

<小时/>

更新1

这里有更多信息。

  1. 这可以在我的本地开发盒上运行。我在 IIS 中设置了该站点,并将其指向项目文件夹, header 将按预期进入并进行处理。
  2. 这是一个 ASP.NET MVC 网站。
  3. 这是读取 header 的代码部分。同样,这在本地有效。

    公共(public)类BaseController: Controller { 公共(public)AppControllerBase(...) { }

    protected override void Initialize(RequestContext requestContext)
    {
    var header1Value = requestContext.HttpContext.Request.Headers["X-HEADER-1"];
    if (string.IsNullOrEmpty(header1Value))
    {
    var stringBuilder = new StringBuilder();
    // append all headers to stringBuilder
    var errorMessage = string.Format("SiteId header is not set. Headers: {0}", stringBuilder);
    throw new HttpRequestException(errorMessage);
    }

    base.Initialize(requestContext);
    }

    ...

    }

<小时/>

更新2

我刚刚部署了与 Azure 云服务相同的应用程序,并且运行良好。已收到 header 并且应用程序已成功读取它们。网络应用程序不允许这些 header 通过。

最佳答案

对我有用的答案在评论中。感谢@Tarek Ayna。

当您将 X-LiveUpgrade 设置为 0 时,会传输自定义 header 。例如:

<httpProtocol>
<customHeaders>
<add name="X-LiveUpgrade" value="0" />**
<!-- Prevent iframes -->
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="X-XSS-Protection" value="1" />
</customHeaders>
</httpProtocol>

关于Azure 网站删除自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com