认识SQL注入
什么是SQL注入,百度给大家解释的很清楚了!这里不过多介绍,帮大家复制过来。
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
如何防止SQL注入
有句老话说的好,有人的地方就会有江湖。SQL注入也有这么一句老话,叫有输入的地方就可能存在SQL注入,那么我们该如何去防止SQL注入呢!SQL注入产生的原理归根结底还是用户输入的代码被数据库执行了,所以解铃还须系铃人,防御SQL注入还是要在代码层面上去解决。
解决方案
方案一
采用预编译技术
INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
使用预编译的SQL语句,SQL语句的语义不会是不会发生改变的。预编译语句在创建的时候就已经将指定的SQL语句发送给了DBMS,完成了解析,检查,编译等工作,所以攻击者无法改变SQL语句的结构,只是把值赋给?,然后将&