【问题标题】:Preventing Cross Site scripting attack防止跨站点脚本攻击
【发布时间】:2015-04-01 11:27:40
【问题描述】:

我被告知要解决 XSS 脚本攻击。所以这里是场景,

查看图片以帮助您理解 Image 1Image 2Image 3

我想要的是这里编写的任何脚本都应该被编码并应该重定向到我创建的错误页面。

现在,使用我当前的代码,当编写任何脚本时,页面将重定向到错误页面,但我希望该脚本也得到编码。

请查看我的代码,让我知道我应该在哪里进行更改以便对其进行编码。

protected void btnSearch_Click(object sender, ImageClickEventArgs e)
{
    if(Regex.IsMatch(txtSearch.Text, "[^a-zA-Z0-9 %  +]"))
        {   
            Response.Redirect("Error.aspx");
        }
        else
        {
            String ClearSpaces = Regex.Replace(txtSearch.Text, @"\s+", " ");
            Response.Redirect("search.aspx?tx=" + HttpUtility.UrlEncode(ClearSpaces));
        }
}

【问题讨论】:

    标签: c# asp.net scripting xss


    【解决方案1】:

    你的另一个问题又是我 :) 如果您在实施其他人的解决方案后问这个问题,似乎正如我告诉您的那样,XSS 并没有得到缓解。 我不明白您所说的“此处编写的任何脚本都应进行编码并应重定向到我创建的错误页面”的意思-如果您重定向到错误页面,则不会以任何方式显示用户的输入。

    正如我在另一篇文章中告诉您的,如果您在此处编写的这段代码不是 search.aspx 的一部分,那么直接访问 search.aspx 将绕过此验证。 您应该将此验证复制到 search.aspx 并验证 QueryString["tx"],并且\或 HTMLEncode 在您的页面输出中使用 QueryString["tx"]。

    【讨论】:

    • 我同意你的看法。暂时我已经使用了那个解决方案。请让我知道永久解决方案,我将在本地进行测试。感谢您考虑
    猜你喜欢
    • 2011-09-07
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2020-04-21
    • 2020-06-12
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多