我使用commandname和commandargument來控制排序(字段和方向)。 SQL注入的視圖狀態有多安全。.net viewstate從SQL注入安全嗎?
1
A
回答
0
如果您將值從ViewState傳遞到串聯的SQL,那麼是的。但是,如果您使用Bind Parameters(您是,是不是?),那麼您不必擔心它。
壞:
string sql = "select * from product where name = ' + ProductNameTextBox.Text + '"
好:
string sql = "select * from product where name = @name"
using(var command = new SqlCommand(sql, connection))
{
SqlParameter param = new SqlServerParameter("@name", SqlDbType.VarChar, 50);
param.Value = ProductNameTextBox.Text;
command.Parameters.Add(param);
command.ExecuteNonQuery();
}
4
SQL injection是用戶輸入的值直接放入查詢中的位置,允許惡意用戶利用您的安全漏洞訪問或損壞您的數據庫。例如,您有一個要搜索的文本框,並且它們輸入的值位於實際查詢中。
除非您的命令參數是由用戶動態輸入的,否則SQL注入將不會構成威脅。
0
它取決於「直接放入SQL查詢」是指它們是參數化查詢的參數還是文字...如果是文字,那麼答案是否定的。
1
如果您使用的是原始SQL,那麼您很可能使用了DataTable
對象,對吧?如果您使用的是DataTable,那麼您可以使用DataView
將數據從數據庫中提取後對其進行排序,並將您的控件綁定到DataView。這樣,您不會向用戶提交的數據訪問您的SQL。因此,在你的代碼中,你可以這樣做:
DataTable dt = GetData(); // pull data from DB with no sort specified
DataView view = dt.DefaultView; // Get a DataView so you can sort
view.Sort = "Col1, Col2 DESC"; // assemble sort string from your command args
MyControl.DataSource = view;
MyControl.DataBind();
相關問題
- 1. 此查詢從sql注入安全嗎?
- 2. 多行查詢SQL注入安全嗎?
- 3. SQL注入 - 這是(oneliner)安全嗎?
- 4. 是FieldByName注入安全嗎?
- 5. 如何從SQL注入安全MySQL?
- 6. 我安全的SQL注入?
- 7. asp.net viewstate安全
- 8. rails是從sql注入的Model.new安全嗎?
- 9. 這是從SQL注入返回DataTable安全的方法嗎?
- 10. 這個腳本安全嗎從sql注入?
- 11. 我的PHP SQL查詢安全嗎SQL注入?
- 12. ASP.Net 1.1 Viewstate安全
- 13. AddWithValue sql注射安全嗎?爲什麼?
- 14. 從SQL注入中製作SQL Server存儲過程安全
- 15. 這個小Doctrine2動態SQL足夠安全的注入嗎?
- 16. 我的PDO查詢安全嗎SQL注入
- 17. 我安全嗎? [試圖阻止SQL注入]
- 18. 我很擔心SQL注入。這安全嗎?
- 19. 簡單的PHP函數對SQL注入安全嗎?
- 20. 如何安全地允許SQL注入
- 21. SQL注入:這行是否安全?
- 22. 在SQL注入方面是否安全?
- 23. 這是GET安全的SQL注入?
- 24. 來自SQL注入的安全性
- 25. 安全性:$ _SERVER數組SQL注入PHP
- 26. MVC 4 SQL字符串注入安全
- 27. 從SQL注入安全參數插入數據庫?
- 28. 休眠和線程安全:注入的SessionFactory線程安全嗎?
- 29. '安全'DLL注入
- 30. .NET DateTime線程安全嗎
能否請您發表您的SQL語句的代碼? –
如果您將這些命令名稱或參數發送給客戶端,只需在數據作爲SQL執行之前對其進行清理,並且您將會很好(當然,如果這些都是這樣的話) –