一览查询页面实现了输入检索条件进行SQL查询数据库表,得到满足条件的数据。
这里需要注意一点:编写代码要注意防止SQL注入。
那么什么SQL注入呢?
SQL注入就是由于程序编写不严谨,导致用户可以在界面上通过输入特殊的字符串,匹配特殊的SQL语句,执行了非预期的SQL语句,从而对数据库造成破坏或者泄漏的现象。
举例说明一下。
假设有一个登录的SQL语句:
select * from user where account='$account' and password='$password';
那么account随意输入一个比如aaa,密码如果输入特殊的字符串:' or 1=1;-- 则拼接好的SQL如下:
select * from user where account='aaa' and password='' or 1=1;--';
那么这条语句就可以满足条件,本来是查询不到数据的,但是通过输入特殊字符串就可以达到查询到数据的目的了。
这样就可以实现登录的目的了。
所以通过以上例子说明,大家就能了解SQL注入的危害性。
那么如何修改代码,避免发生SQL注入呢?
方法有很多种,一种办法是通过限制连接数据库的用户的相关权限来防止用户执行删除等的动作。
还有一种办法是修改代码进行SQL拼接的方式。
还有一种办法是对输入的条件参数进行转换,防止非法的拼接字符串出现。
entity.php代码修改如下:
可以看到在拼接输入参数变量之前,运行了函数mysql_real_escape_string,它的作用就是进行特殊字符转义,防止数据库攻击。
后面的代码实现执行SQL语句的时候都要对参数执行这个函数操作。