sql注入漏洞
SQL注入漏洞是指通过查询内容改变sql 语句的查询语义从而达到绕开(避过)验证机制的SQL漏洞。eg:
select top 1 * from user where username = ? and password = ?;
//当password 中输入的内容为password' or 1 = '1 时,原SQL 语句被修改为:
select top 1 * from user where username = 'username' and password = 'password' or 1 = '1';
此时,username 和password 为任何值都没有关系,可以查询到此user 表中所有的数据项。
其中,top 1 用于优化SQL 查询语句。若没有 top 1 时,不管前面是否查询到匹配的数据项,SQL 都会查询完整张表,而浪费资源与时间;当存在 top 1 时,当查询到第一个匹配项时,就会返回结果。(仅用于username 和password 为唯一时)