一文弄懂SQL注入攻击原理及防御手段

什么是SQL注入攻击?

SQL Injection,SQL注入攻击:指攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。如果表单使用用户输入的内容直接构造SQL,则很容易受到SQL注入攻击。

SQL注入攻击实例(实现无密码登录)

1、假设用户需要登录某网站,该网站登录时查询用户的SQL如下:

String queryUser = "SELECT * FROM users WHERE name = '" + userName + "' and pw = '"+ passWord +"';";

可以看到,是直接拼接用户名和密码进行用户查询的。

2、攻击者现在在用户名输入框中输入admin'--,密码输入框中输入123456

3、则构造的查询SQL为:

// 这是攻击者输入的用户名
String userName = "admin'--";
String passWord = "123456";

// 后台的查询用户SQL
String queryUser = "SELECT * FROM users WHERE name = '" + userName + "' and pw = '"+ pa

你可能感兴趣的:(项目中的那些事,SQL注入,SQL注入攻击,安全)