使用cloudflare进行回发和重定向会导致异常行为

时间:2016-10-05 10:49:39

标签: asp.net cloudflare

我们正在将Cloudflare用于其DNS和HTTP代理。我们今天发现了一些与回发和重定向有关的奇怪行为。

我们的管理系统主页包含TextBox和Button。用户输入ID并单击该按钮,然后我们将其重定向到我们系统上的购买(此购买页面使用相同的主页)。

以下是一系列事件:

  1. 使用ID 123456(正确重定向至123456)搜索购买
  2. 使用Id 123457(重定向至123456)搜索购买
  3. 使用ID 234567(正确重定向234567)
  4. 搜索购买
  5. 使用Id 123457(重定向至123456)搜索购买
  6. 我们首先在本地尝试此操作,但无法复制该行为。然后我们尝试检查POST以查看我们是否发送了不正确的值。在打开Fiddler检查请求后,问题完全消失了。然后,我关闭了Fiddler,并使用Chrome工具检查POST,发现正在发送正确的ID。

    然后我们认为这可能与Cloudflare有关,因此禁用了Cloudflare HTTP代理。完成后,一切都按预期工作。

    之前有没有其他人经历过这个问题,如果有的话,我们可以做些什么来纠正这个问题?以下是我的代码:

    按钮代码:

    <asp:Panel runat="server" DefaultButton="btnQuickJumpPurchase" class="row hide-for-small">
    <div class="four columns offset-by-two">
    
        <asp:TextBox ID="txtQuickJumpPurchase" CssClass="left nine" placeholder="Purchase ID" runat="server"></asp:TextBox>
        <asp:Button ID="btnQuickJumpPurchase" runat="server" Text="Go" OnClick="btnQuickJumpPurchase_Click" CssClass="right button green small radius" />
    </div>
    <div class="two columns"></div> 
    

    OnClick事件处理程序

    protected void btnQuickJumpPurchase_Click(object sender, EventArgs e)
    {            
        int quickPurchaseId = 0;
        int.TryParse(txtQuickJumpPurchase.Text, out quickPurchaseId);
        if (quickPurchaseId == 0)
            HttpContext.Current.Response.Redirect("/admin");
        else
            HttpContext.Current.Response.Redirect($"/admin/purchases/purchase.aspx?id={quickPurchaseId}");
    }
    

0 个答案:

没有答案