1. 程式人生 > >SQL防注入SqlParameter的使用

SQL防注入SqlParameter的使用

概述:一般來說,在更新DataTable或是DataSet時,如果不採用SqlParameter,那麼當輸入的Sql語句出現歧義時,如字串中含有單引號,程式就會發生錯誤,並且他人可以輕易地通過拼接Sql語句來進行注入攻擊。

目的:防止Sql注入被攻擊。

程式碼:首先,先寫一個沒有SqlParameter注入的程式碼

String sql=select * from Table1 where ID=1

SqlDataAdapter red=new SqlDataAdapter ();

Dataset st=new Dataset ();

red.Fill(st);

try

{

    conn.Open();

    return(cmd.ExecuteNonQuery());

}

catch(Exception)

{

    return-1;

    throw;

}

finally

{

    conn.Close();

}

這是沒有SqlParameter注入的程式碼,除了存在安全問題外,該方法還無法解決二進位制流的更新

解決方法   可以使用ADDAddRange方法

AddRange方法

SqlParameter sql=new SqlParameter(@Name,Pubiing);

SqlParameter[] paras = newSqlParameter[] { new

SqlParameter("@name","Pudding"),

newSqlParameter("@ID","1") };

cmd.Parameters.AddRange(paras);