1

应该使用什么正则表达式将在 ASP.Net 中导致以下错误的字符序列列入黑名单 - “从客户端检测到潜在危险的 Request.Form 值”。(例如 <br>、<hi>、<a> 等。)

我需要使用asp.net 正则表达式验证控件将那些会导致此错误的字符序列列入黑名单。

例如,如果我输入 123< hi > 、有效的 < abc > 等。我需要验证失败。

PS:我已将 <br> 隔开,因为它没有在问题中正确显示,但实际上它应该没有 < 或 > 之间的空格以及它们之间的字符串

4

2 回答 2

0

对于您的示例,您需要以下正则表达式:“< br >|< hi >|< a >”。如果您需要将任何其他令牌列入黑名单,只需使用下一个“|< ?? >”序列。登录 | 在正则表达式中表示匹配具有 OR 条件的组,因此示例表示实际匹配 <br> 或 <hi> 或 <a>。

如果您只需要一个针对任何潜在 HTML 标记失败的通用正则表达式,那么 "<.*?>" 应该可以完成这项工作。但这将失败,如果 <> 大括号之间的任何序列不仅有效的 HTML 标记。

如果您想测试一些其他文本和正则表达式或了解更多信息,我建议您使用两个非常好的站点:

http://www.regexr.com/

https://regex101.com/

于 2016-02-21T00:35:43.967 回答
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 ');
}
于 2018-11-16T06:06:28.867 回答