MySQL的安装与配置祥解6

2014-11-24 17:14:38 · 作者: · 浏览: 0

编程需要注意的一些问题


不管是用哪种程序语言写连接MySQL数据库的程序,有一条准则是永远不要相信用户提交的数据!


对于数字字段,我们要使用查询语句:SELECT * FROM table WHERE ID='234',不要使用SELECT * FROM table WHERE ID=234这样的查询语句。MySQL会自动把字串转换为数字字符并且去除非数字字符。如果用户提交的数据经过了mysql_escape_string处理,这样我们就可以完全杜绝了sql inject攻击,各种编程语言该注意的问题:


1)所有Web程序:


a)尝试在Web表单输入单引号和双引号来测试可能出现的错误,并找出原因所在。


b)修改URL参数带的%22 ('"'), %23 ('#'), 和 %27 (''')。


c)对于数字字段的变量,我们的应用程序必须进行严格的检查,否则是非常危险的。


d)检查用户提交的数据是否超过字段的长度。


e)不要给自己程序连接数据库的用户过多的访问权限。


2)PHP:


a)检查用户提交的数据在查询之前是否经过addslashes处理,在PHP 4.0.3以后提供了基于MySQL C API的函数mysql_escape_string()。


3)MySQL C API:


a)检查查询字串是否用了mysql_escape_string() API调用。


4)MySQL++:


a)检查查询字串是否用了escape和quote处理。


5)Perl DBI:


a)检查查询字串是否用了quote()方法。


6)Java JDBC:


a)检查查询字串是否用了PreparedStatement对象。