using system;using system.collections.generic;
using system.linq;
using system.text;
using system.data.sqlclient;
/* sql注入漏洞攻周
* 登陸判斷: select * from t_users where username=... and password=...,將引數拼到sql語句中
* 構造惡意的password: 1' or '1'='1
* 防範注入漏洞攻擊的方式:不使用sql語句拼接,通過引數賦值
* * 查詢引數
* sql語句使用@username表示"此處用引數代替",向sqlcommand的parameters中新增引數
* cmd.commandtext = "select * from t_user where username=@u and password=@p";
* cmd.parameters.add(new sqlparameter("u","admin"))
* cmd.parameters.add(new sqlparameter("p","111111"));
* 引數在sqlserver內部不是簡單的字串替換,sqlserver直接用新增值進行資料比較,因此不會有注入漏洞攻擊
* */
namespace _8注入漏洞與引數化查詢
/*console.writeline("請輸入使用者名稱:");
string username = console.readline();
console.writeline("請輸入密碼:");
string password = console.readline();
//輸入1' or '1' = '1造成sql注入漏洞攻擊
using (sqlconnection conn = new sqlconnection(@"data source=.\sqlexpress;attachdbfilename=e:\myprojects\c#net傳智播客\第五季ado.net\8注入漏洞與引數化查詢\8注入漏洞與引數化查詢\database1.mdf;integrated security=true;user instance=true"))
else
}}*/
/*案例
使用者介面中進行登陸判斷,輸錯三次禁止登陸,用資料庫記錄errortimes
* paramter的重複新增
* * 資料匯出,將使用者資訊匯出到文字檔案中
*/console.readkey();}}
}
第五節 8注入漏洞與引數化查詢
using system using system.collections.generic using system.linq using system.text using system.data.sqlclient sql注入漏洞攻周 登陸判斷 select from t users where...
第五節 8登陸練習操作
using system using system.windows.forms using system.data.sqlclient using system.io namespace 8登陸練習操作 private void seterrortimes private void reseterr...
第五節 8登陸練習操作
using system using system.windows.forms using system.data.sqlclient using system.io namespace 8登陸練習操作 private void seterrortimes private void reseterr...