在这个登录页面,我们需要知道用户名和密码,但是也有一种途径,不需要知道用户名和密码
也可以进入网页,这叫做sql注入攻击
对于上面的这个表格,左边是用户名右边是密码
这是登录页面的代码
StringSqlString=“Select*FromUSERWhere用户名=‘”+Username.text()+”’And密码=‘”+Password.Text()+”’”;
inti=SQLExecute(SqlString);
if(0==i)
{
Alert(“用户名或密码错误!”):
return;
}
else
response.direct(“index.aspx”);
那么。相应的sql语句就是Select * From user Where 用户名=‘User1’ And 密码=‘abcde’
那么sql注入攻击
相应的sql语句就是
Select * From user Where 用户名=‘a’or ‘1’=‘1’;# And密码=‘abcde’
这里把后面的密码部分覆盖掉了。
Where 用户名=‘a’or ‘1’=‘1’就是 一个判断句
这总是为真。那么就可以达到攻击的目的
不过,开发者已经意识到这个问题了
将登录页面的代码改为两个函数,每个函数接受用户控件名和密码控件的字符串
现在已经不能进行sql注入攻击了