以用户登录来说明问题吧。 正常情况下: 1.传入用户名密码。 2.将传入的参数拼接到SQL语句中。 3.执行SQL。SQL可能是这个样子的 select * from user where name = 'a' and password='b'; 这是正常情况。 但是.... 如果我传入的用户名是: a'; drop table user; 这个时候,拼接的SQL是啥样子的?
select * from user where name = 'a'; drop table user; and password='b';
以用户登录来说明问题吧。
正常情况下:
1.传入用户名密码。
2.将传入的参数拼接到SQL语句中。
3.执行SQL。SQL可能是这个样子的
select * from user where name = 'a' and password='b';
这是正常情况。
但是....
如果我传入的用户名是:
a'; drop table user;
这个时候,拼接的SQL是啥样子的?
select * from user where name = 'a'; drop table user; and password='b';