none
SQL注入问题 RRS feed

  • 问题

  •  

    我没有用存储过程,而是:

    cmd.CommandText = "select  zhide from g_xiaofei  where zhuangtai2=1" + this.HiddenField1.Value;

    即:我把条件存放到隐藏于里面,如上;

    如果出现错误,用错误页面来处理,不暴露给用户;

    攻击者可不可能威胁到我的数据库那,谢谢!

    我认为攻击者不管怎么构造隐藏域,都是在where条件语句中,应该不会威胁到数据库吧,最多会影响其查询性能,不知是否正确?

    2008年12月28日 11:03

答案

全部回复

  • 用SqlParamter

    2008年12月28日 13:51
  •  

    任何技术没有不可能的破坏性 只有自己想不到的
    2008年12月28日 13:54
  • 呵呵,这个和存储过程关系不是很大。扫描工具只直接通过你写的语句来链接你的数据库的,不需要自己判断如何链接数据库。

    微软的MSDN上还是很多防止SQL漏洞的做法。我不是开发人员对这些只是略懂皮毛~,关于微软解决SQL注入的相关解决方案:http://eit.mageer.com/read.php?23
    2008年12月28日 14:13
    版主
  •  this.HiddenField1.Value= ";Drop table g_xiaofei"
    2008年12月28日 22:08
    版主
  • 对哈!看来不用存储过程,危险是相当大的!谢谢!

    2008年12月29日 1:20
  • 不一定要存储过程
    你应该用
    SqlParamt来构建查询串

    用加号拼接字符串的方式就是会有注入漏洞的
    2008年12月29日 4:10
  • 对于下面的语句:

    cmd.CommandText ="select * from a where zhanghao='"+this.textbox1.Text+"'";

    如果文本框里面不允许输入 ' --  /*三个字符,那么这个语句安全吗(针对SQL SERVER)?

    请指教,谢谢!

     

    对于XSS也是,我认为即使对输入不检测,只要显示时用HtmlEncode编码就行了赛!

    再次 谢谢!

     

    2009年1月20日 5:10
  • 不安全 文本框不输入非法字符这样不能解决问题

     

    .net控件转换成html代码后 还是input等 通过一定的构造还是能构造危险的代码的。

     

    比如目前的用户登录,单单的控制输入框是不能完全解决问题的

     

    2009年1月20日 6:41