什么是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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。