【问题标题】:regular expression to blacklist potentially dangerous strings将潜在危险字符串列入黑名单的正则表达式
【发布时间】:2016-02-20 09:15:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp.net regex validation-controls


    【解决方案1】:

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

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

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

    http://www.regexr.com/

    https://regex101.com/

    【讨论】:

      【解决方案2】:

      对于某天来说,这是一个快速而肮脏的解决方案

      添加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 ');
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2010-09-14
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多