如果你的查询语句是select * from admin where username='"&user&"' and password='"&pwd&"'"
那么,如果我的用户名是:1' or '1'='1
呵呵,你的查询语句将会变成:
select * from admin where username='1 or '1'='1' and password='"&pwd&"'"
这样你的查询语句就通过了,从而就可以进入你的管理界面。
这还不算,如果在输入框中加入如下字符: ;delete from admin
那你的数据库不就完完了吗?
以下是使用防注入的带参数的示例代码:
SqlConnection MyCon = new SqlConnection(ConfigurationSettings.AppSettings["con"]); SqlCommand MyCmd = new SqlCommand("select * from ClientName where 客户名=@ClientName",MyCon);