/*
* c#防止sql注入式攻擊
* author:ice frog
* time:2016/4/20
*//*
* sql注入式攻擊就是值通過sql執行語句的漏洞進行百分百匹配條件的攻擊
* 那麼在執行語句的where語句後面的條件就永遠為true
* * c#在資料庫的這一塊漏洞上新增了乙個類來處理這個問題:
* sqlparameter - using system.data.sqlclient;
* 原理就是讓where條件後面欄位不和整個執行語句化為乙個字串,而是以通過乙個引數的形式傳遞進去
* 這樣可以達到兩個效果:
* 第一就是避免注入式攻擊
* 第二就是防止非法字元導致軟體崩潰
* 那麼我們需要把原來的sql執行語句比如:string.format(「select * from user where id=』』 and pwd = 『』」,id,pwd)
* 更改為: 「select * from user where id = @id and pwd = @pwd」;
* 我們使用了@名 代替了佔位符,而這個@名 原先是不存在不需要宣告的。只需要在後面使用上面那麼類宣告一下就ok
* code:
*
sqlparameter i = new sqlparameter("@id",id);
* sqlparameter j = new sqlparameter("@pwd",pwd);
sqlcommand cmd = new sqlcommand(sql,conn);
* cmd.parameters
.add(i);
* cmd.parameters
.add(j);
* sqldataadapter dat = new sqldataadapter(sql,conn);
* dat.selectcommand
.parameters
.add(i);
* dat.selectcommand
.parameters
.add(j);
code:
sqlconnection conn = new sqlconnection("...");
conn.open();
string sqlsentence = "select * from user where id = @id and pwd = @pwd"
; sqlparameter id = new sqlparameter("@id",value1);
sqlparameter pwd = new sqlparameter("pwd",value2);
sqlcommand cmd = new sqlcommand(sqlsentence,conn);
//sqldataadapter dat = new sqldataadapter(sqlsentence,conn);
.parameters
.add(id);
.parameters
.add(pwd);
cmd.parameters
.add(id);
cmd.parameters
.add(pwd);
object obj = cmd.executescalar();
conn.close();
C 引數化 防止SQL注入
c 防止sql注入式攻擊 author ice frog time 2016 4 20 sql注入式攻擊就是值通過sql執行語句的漏洞進行百分百匹配條件的攻擊 那麼在執行語句的where語句後面的條件就永遠為true c 在資料庫的這一塊漏洞上新增了乙個類來處理這個問題 sqlparameter u...
C 引數化 防止SQL注入
分類專欄 c c 防止sql注入式攻擊 author ice frog time 2016 4 20 sql注入式攻擊就是值通過sql執行語句的漏洞進行百分百匹配條件的攻擊 那麼在執行語句的where語句後面的條件就永遠為true c 在資料庫的這一塊漏洞上新增了乙個類來處理這個問題 sqlpara...
C 引數化 防止SQL注入
2018年08月08日 16 12 43 one piece fu 閱讀數 968更多 分類專欄 c c 防止sql注入式攻擊 author ice frog time 2016 4 20 sql注入式攻擊就是值通過sql執行語句的漏洞進行百分百匹配條件的攻擊 那麼在執行語句的where語句後面的條...