简单的sql注入及预防

来源:互联网 发布:富阳法院拍卖淘宝网 编辑:程序博客网 时间:2024/06/06 00:00

sql注入就是通过表单或者url来像服务器中插入sql语句,从而达到自己的目的,获取数据,修改数据。

例如输入' or 1='1;这样就使搜索的条件语句变成了一定成立的。

用sql注入就可以实现登录之类的。但是像我对密码用了md5加密,这样对密码的简单sql注入就失去了效果。


像这样只获得了读取的功能,并不是很有用。我们就想要获取数据表名,从而实现增删改的功能。

通过例如' or 1=(select count(*) from a)--;来猜测数据库表的名。--是mysql的注释,这样就把后面的'注释掉了。

慢慢根据字典测出来表名后,就可以对这个表进行各种各样的操作了。


怎么预防sql注入?

一般使用addslashes,PHP一般默认对所有get,post和cookie自动运行addslashes

1.表单要对用户的输入进行校验,设置正则表达式,限制长度,限制某些字符的输入。

2.不用使用动态拼接sql语句,使用参数化的sql;

3.不要使用管理员权限连接数据库,应该分几个单独的权限来连接数据库。

4.不要对重要的内容直接明文使用,而是通过加密来处理。如密码

5.数据库的异常尽量少给报错信息,否则对方会从报错信息中获取信息,

或者给出报错信息,只不过你把报错信息处理让对方看不懂,只有你可以看懂。

6.预编译


原创粉丝点击