SQL注入
1、什么是SQL注入?
就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
例如:
注意:SQL注入对登录和注册不安全,
2、怎样防止SQL注入?
1.严格限制Web应用的数据库的操作权限,给此用户提供仅仅能够满足其工作的最低权限,从而最大限度的减少注入攻击对数据库的危害
2检查输入的数据是否具有所期望的数据格式,严格限制变量的类型3.对进入数据库的特殊字符(’”\尖括号&*;等)进行转义处理,或编码转换。
代码如下:
使用以上代码就能防止SQL注入。
原因是:
当调用 prepare() 时,查询语句已经发送给了数据库服务器,此时只有占位符 ? 发送过去,没有用户提交的数据;当调用到 execute()时,用户提交过来的值才会传送给数据库,他们是分开传送的,两者独立的,SQL攻击者没有一点机会。