我要做一个新闻系统,向数据库中添加内容是用的存储过程,但是怎么防范 SQL 注入攻击呢?如果在数据库中新闻的标题列用的是text格式,当用户提交一个<select * from mytable>的时候是作为执行语句来对待,还是做为字符对待?也就是说怎么确保在数据库中将注入的代码作为原意数据,而不是可执行语句来对待呢.

解决方案 »

  1.   

    在程序中尽量减少SQL语句字符串的连接,替换掉"',--"之类的字符.尽可能用存储过程来执行所有的查询,限制相关数据库帐户权限....
      

  2.   

    SQL注入不是一两句话就能说明白的,建议LZ先学习如何SQL注入,然后再写。
      

  3.   

    对输入进行替换,将一个单引号替换为两个单引号
    然后对输入进行校验,对含有delete insert xp_cmdshell exec等关键字的均不能通过
      

  4.   

    在sqlcommand里面用参数的方法 updata table set NAME=@NAME where ID=@ID