加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET潜在危险请求Javascript正则表达式

发布时间:2020-12-16 07:10:14 所属栏目:asp.Net 来源:网络整理
导读:什么是Microsoft的.NET Framework用于执行标准验证的 regular expression,该标准验证导致HttpRequestValidationException“当发布HTML或其他可能不安全的内容时,从客户端检测到潜在危险的Request.Form值”. 我希望将它的精确副本转换为JavaScript,以便提前通
什么是Microsoft的.NET Framework用于执行标准验证的 regular expression,该标准验证导致HttpRequestValidationException“当发布HTML或其他可能不安全的内容时,从客户端检测到潜在危险的Request.Form值”.

我希望将它的精确副本转换为JavaScript,以便提前通知用户.

我当前的正则表达式(/(&#)|< [^<>]> /)接近,但与.NET不同.

我知道这对于不同的.NET版本可能会有所不同,所以我特别想知道:

> .NET 2的正则表达式
> .NET 4的正则表达式

解决方法

你可以使用一些decompilig工具,亲眼看看根本没有正则表达式.它调用静态方法CrossSiteScriptingValidation.IsDangerousString.

但也许您可以使用Microsoft AntiXSS库来实现相同的目标.无论如何这里是方法:

internal static bool IsDangerousString(string s,out int matchIndex)
{
    matchIndex = 0;
    int num1 = 0;
    int num2 = s.IndexOfAny(CrossSiteScriptingValidation.startingChars,num1);
    if (num2 < 0)
    {
        return false;
    }
    if (num2 == s.Length - 1)
    {
        return false;
    }
    matchIndex = num2;
    char chars = s.get_Chars(num2);
    if ((chars == 38 || chars == 60) && (CrossSiteScriptingValidation.IsAtoZ(s.get_Chars(num2 + 1)) || s.get_Chars(num2 + 1) == 33 || s.get_Chars(num2 + 1) == 47 || s.get_Chars(num2 + 1) == 63))
    {
        return true;
    }
    else
    {
        if (s.get_Chars(num2 + 1) == 35)
        {
            return true;
        }
    }
    num1 = num2 + 1;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读