如何限定在textbox里输入的只能是中文,英文,下划线和数字?这些没有攻击性字符(正则)?

解决方案 »

  1.   

    可以搜索一下sql攻击的正则表达式
      

  2.   

    UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
    IsSafe : function(str){return !this.UnSafe.test(str);}
      

  3.   

    一定有的。我在WEB安全开发就看过。特别是在输入密码时。他们可能会插入一些SQL语句。编译执行,网站就这样被人入侵了。
      

  4.   

    只能说明你的代码不安全,使用参数化sql语句即可解决
      

  5.   

    将Page的AutoEventWireup属性设置为true
      

  6.   

    UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
    这个错了啊
      

  7.   

    防止SQL的注入攻击是不是只需要把单引号给屏蔽掉就可以了?
      

  8.   

    1. 限制长度。
    2. 形成SQL应该写:sqlStr += "and [帐号]='"+ZhangHao.Text.Replace("'","''")+"'"。参数查询也可以,不过有点小题大做。
      

  9.   

    (1)防SQL注入应当采用参数化的SQL,而不是自已构造SQL语句(虽然很多书上都是这样做的,但这种做法更适合于C/S系统),比如采用存贮过程,或者利用系统提供的数据源控件的SQL参数列表。
    (2)防网页恶意代码应当用replace过滤掉非正常或者可能导致问题的字符。
    至于正则表达式做这两类事情,还没有听说过,学习。