2)PHP: a)检查用户提交的数据在查询之前是否经过addslashes处理,在PHP 4.0.3以后提供了基于MySQL C API的函数sql/Index.html'>mysql_escape_string()。
3)MySQL C API: a)检查查询字串是否用了sql/Index.html'>mysql_escape_string() API调用。
4)MySQL++: a)检查查询字串是否用了escape和quote处理。
5)Perl DBI: a)检查查询字串是否用了quote()方法。
6)Java JDBC: a)检查查询字串是否用了PreparedStatement对象。
4、一些小窍门
1)如果不慎忘记了MySQL的root密码,我们可以在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证 (./safe_sql/Index.html'>mysqld
--skip-grant-tables &),这样我们就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用新口令登陆了。
2)启动MySQL服务器时加上--skip-show-database使一般数据库用户不能浏览其它数据库。
3)启动MySQL服务器时加上--chroot=path参数,让sql/Index.html'>mysqld守护进程运行在chroot环境中。这样SQL语句LOAD DATA INFILE和SELECT ... INTO
OUTFILE就限定在chroot_path下读写文件了。这里有一点要注意,MySQL启动后会建立一个sql/Index.html'>mysql.sock文件,默认是在/tmp目录下。使用了
chroot后,MySQL会在chroot_path/tmp去建立sql/Index.html'>mysql.sock文件,如果没有chroot_path/tmp目录或启动MySQL的用户没有这个目录写权限就不能
上一页 [1] [2] [3] [4] 下一页
|