防止SQL注入


最根本的就是sql查詢參數化

1.使用ORM-LINQ
2.如果使用SQL:
(1)前端數據驗證
(2)接口參數驗證:強類型
(3)使用sql時使用Sql對應幫助類進行sql參數化,比如:


//在ASP.NET程序中使用參數化查詢
 
//ASP.NET環境下的查詢化查詢也是通過Connection對象和Command對象完成。如果數據庫是SQL Server,就可以用有名字的參數了,格式是“@”字符加上參數名。
 
SqlConnection conn = new SqlConnection("server=(local)\\SQL2005;user id=sa;pwd=12345;initial catalog=TestDb");
conn.Open();
 
SqlCommand cmd = new SqlCommand(“SELECT TOP 1 * FROM [User] WHERE UserName = @UserName AND Password = @Password“);
cmd.Connection = conn;
cmd.Parameters.AddWithValue(”UserName”, “user01″);
cmd.Parameters.AddWithValue(”Password”, “123456″);
 
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int userId = reader.GetInt32(0);
 
reader.Close();

(4)正則表達式驗證、對字符串進行過濾

參考資料

使用StringBuilder與SqlParameter
如何從根本上防止 SQL 注入?
SQL參數化查詢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM