我使用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执行之前对其进行清理,并且您将会很好(当然,如果这些都是这样的话) –