Re: [問題] 如何防止SQL注入漏洞程式
※ 引述《wa007123456 (大笨羊)》之銘言:
: 大家都知道 SQL注入是駭客web攻擊常見的方法之一
: 如果今天用C#來實作
: 要怎麼防止POST和GET有惡意字元?
: 我唯一想到的頭緒是Global.asax
: 但是不知如何實作
: 感謝各位先輩
常見的有幾個方法,其實推文大致上都說了
1.LinQ to SQL
https://msdn.microsoft.com/zh-tw/library/bb386295(v=vs.110).aspx
看名稱就知道是用LinQ語法來操作SQL
不過簡單的CRUD還ok,如果是相當複雜的操作,就不是太好使用
2.ADO.NET Entity Framework (ADO.NET EF)
這文章相當多,如果對 SQL 不是很擅長的話,是一個很好的方法
透過 Mapping Objects to Data 來操作 DB
另外也有 LinQ to Entity 可以一起使用
對不習慣寫 SQL 的人是很好的一種做法
3.Sql Parameters
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.
sqlcommand.parameters(v=vs.110).aspx
縮址: https://goo.gl/LuhTLc
透過 parameter 的方式來傳遞參數
值得注意的是 parameter 只能用在條件式的條件
如果要動態的改變查詢的 column 或 table 等是無法用 parameter 來傳遞的
此時可以合併使用第四種方法
4.先在程式中轉換,再組合成 Sql Command Text
簡單來說就是先用程式轉換過一次(if else 或 switch 等等)
http://ideone.com/g85kLi
如果你習慣寫SQL的話,3+4是不錯的方法
對 SQL 比較不熟悉的話,使用ADO.NET EF也是很好的一種方法
已經一陣子沒寫C#了,這些是以前我會使用的方法,讓你參考一下
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.150.144
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1444275186.A.1AE.html
推
10/08 12:13, , 1F
10/08 12:13, 1F
討論串 (同標題文章)
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章