SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。举个简单的例子:做用户登录时候在你的SQL语句后面加一个where 1=1。这样一来可以无视你输入的用户名和密码,直接登录你的程序。
那么怎么防止呢?
1.用户检测:这个是必须的。
2.不拼装sql,即采用PreparedStatement的占位符。
3.加密信息。
4.限制应用链接的数据库权限。
5.字符串过滤。