应该使用什么正则表达式将在ASP.Net中导致以下错误的字符序列列入黑名单 - “从客户端检测到一个潜在危险的Request.Form值”。 (例如< br>,< hi>,< a>等..)
我需要使用 asp.net正则表达式验证控件来黑名单那些会导致此错误的字符序列。
例如,如果我输入123<嗨> ,有效< abc>等等。我需要验证失败。
PS:我间隔了< br>因为它没有在问题中正确显示它,但实际上它应该没有<或者>以及它们之间的字符串
答案 0 :(得分:0)
对于您的示例,您需要关注正则表达式:"< br> |<嗨> |< a>"。如果您需要将任何其他令牌列入黑名单,请使用下一个" |< ?? >"序列。 签名|在正则表达式中意味着将组与OR条件匹配,因此示例意味着实际匹配< br>或者<嗨>或者< a>。
如果您只需要通用正则表达式,那么任何可能的HTML标记都会失败 "<?*>"应该做的工作。但是如果对于<>之间的任何序列,这将失败。不仅支持有效的HTML标签。
如果您想测试其他一些文本和正则表达式或了解更多信息,我建议使用两个非常好的网站:
答案 1 :(得分:0)
这是某天某人快速又肮脏的解决方案
添加jQuery库
$("input").bind("paste", function (e) {
var pastedData = e.originalEvent.clipboardData.getData('text');
$(this).val(Encode(pastedData));
e.preventDefault();
});
function Encode(str)
{
return str.replace(/(<)(\S+)(>)/g, '$2 ');
}