Mysql数据库,php连接用户只赋select,insert,update,delete权限,其它一概不给,还会不会被SQL攻击注入?如果会,是怎么实现的,用有什么样防止方法?
不要加入一个文件,对每个http传值,用过滤如drop,alter等 SQL关键词的方式,这样一些技术文章就无法写入数据库了。
最好是对每个变量过滤引号,斜杠(php函数:mysql_escape_string),关键是有时可能忘记过滤。所以想知道只给基本权限,是否可注入?

解决方案 »

  1.   

    注入并不是因为mysql权限,大多数情况是因为没有过滤sql语句规范你的sql语句就是一个很好的方法。还有过滤和限制一些外部参数
      

  2.   

    sql注入是很好防的,关键是你的程序编写习惯,养成了就没啥问题。输入数据主要来自于 post,get,cookie,对于这些数据php配置中会有一个自动加反斜线的设置,打开它。这样第一步就没问题了剩下的是利用urlencode字符跳过这个自动过滤的注入,对于这一类,你要在urldecode之后对其进行加反斜线处理。也就是保证在这些输入数据做任何编码转换后保证它做且进做过一次反斜线处理,这样既能保证还原数据又能保证不被注入。就这些
      

  3.   

    有兴趣可以看看get数据,它和post是有点区别的,会有一次自动转换的过程
      

  4.   

    我都用mysql_real_escape_string();不知道管不管用