如何缓解 ASP.NET Web 窗体应用程序中 Captcha.aspx 的 HTTP 参数污染漏洞

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

我们最近使用 Tenable Web 应用程序扫描工具扫描了我们的 Web 应用程序,该工具检测到一个名为 HTTP 参数污染的中型漏洞

该漏洞检测到我们的 Web 应用程序中的特定部分,Captcha.aspx

我们没有明确使用该组件。 Captcha.aspx 是 Google 提供的第三方工具。我们唯一提到 Captcha.aspx 的部分是 Web.config

我们在验证码控件中也有这段代码

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    writer.Write("<Div><Table>");            
    writer.Write("<tr><td><img src=\"CaptchaImage.aspx?guid=" + _captcha.UniqueID + "\"></td></tr>");
    writer.Write("<tr><td><input style='width: 120px;' name=\"" + this.UniqueID + "\" type=text></td></tr>");
    writer.Write("</Table></Div>");
}

有人可以建议如何缓解该漏洞吗

c# asp.net captcha owasp
1个回答
0
投票

这对我有用

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        if (IsValidCaptcha(_captcha.UniqueID))
        {
            writer.Write("<Div><Table>");
            writer.Write("<tr><td><img src=\"CaptchaImage.aspx?guid=" + _captcha.UniqueID + "\"></td></tr>");
            writer.Write("<tr><td><input style='width: 120px;' name=\"" + this.UniqueID + "\" type=text></td></tr>");
            writer.Write("</Table></Div>");
        }
    }

    private bool IsValidCaptcha(string captchaValue)
    {
        // Implement your validation logic (length, format, etc.)
        return !string.IsNullOrEmpty(captchaValue) && captchaValue.Length <= 50;
    }
© www.soinside.com 2019 - 2024. All rights reserved.