基本的sql注入防御手段,概括来讲就是权限控制和关键词过滤。

防御sql注入
============================================================================================================================================================================
mysql有四个级别的权限,用户级、库级、表级、列级。
select into outfile '<file-name>';需要全局的file权限,在mysql.user中有记录,
一般赋予某个库的所有权限在mysql.db中有记录。
http://www.blogjava.net/xiaomage234/archive/2011/11/04/362677.html 抵御mysql注入,做到以下几点:
1、后台连接数据库的用户,不要赋予file privilege,让其无法执行select into outfile,load_file等命令
2、mysql用户不能在网站目录有可写权限,否则可能挂马
3、其实只要post或get提交的参数中含有select、union、between、if、from、sleep、分号、单引号、#、--、逗号、(、)等关键字就可以返回404错误,在数据库采用UTF8编码且将单引号转义,
让攻击者无法得到任何可以利用的信息。
4、提交的参数在用来查询数据库时,可使用pdo进行参数绑定,预编译将数据和指令区分开。

  

05-08 14:56