1
如何編寫正則表達式(使用C#)來檢查是否沒有字符「<」和「>」?RegularExpression Validator每次觸發
我寫的代碼在控制檯上進行測試:
Regex reg = new Regex(@"^(?!(.*<+.*)|(.*>+.*))");
string[] array = { "any text", "$baks> fgg", "att <br /> dfsdf", "<<script />> sdfsdf", "@##%%^^&&" };
foreach (var str in array)
{
if (reg.IsMatch(str))
Console.WriteLine("OK:\t\t{0}", str);
else
Console.WriteLine("XSS ATTACK:\t{0}", str);
}
結果是:
OK: any text
XSS ATTACK: $baks> fgg
XSS ATTACK: att <br /> dfsdf
XSS ATTACK: <<script />> sdfsdf
OK: @##%%^^&&
但如果我用這句話像
[RegularExpression(@"^(?!(.*<+.*)|(.*>+.*))")]
驗證屬性它觸發的任何字。 爲什麼?如何編寫正確的表達式?
這只是客戶端的簡單驗證。使用AntiXSS在服務器端實現全面驗證。
謝謝。
謝謝!它效果很好。 幾分鐘後,我完成自定義客戶端驗證的解決方案,但您的解決方案對我來說更好。 – kleban 2012-07-19 13:30:08