在這個登錄頁面,我們需要知道用戶名和密碼,但是也有一種途徑,不需要知道用戶名和密碼
也可以進入網頁,這叫做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注入攻擊了