首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.net视图状态不受.net注入的影响?

.net视图状态不受.net注入的影响?
EN

Stack Overflow用户
提问于 2011-07-19 08:19:39
回答 4查看 2.6K关注 0票数 1

我使用命令名和命令来控制排序(字段和方向)。来自SQL注入的视图状态的安全性如何。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-19 09:17:28

如果要将值从ViewState传递到连接的SQL,则为yes。但是,如果您正在使用Bind Parameters (您正在使用,不是吗?)那你就不用担心了。

不好的

代码语言:javascript
复制
string sql = "select * from product where name = ' + ProductNameTextBox.Text + '"

Good:

代码语言:javascript
复制
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();
}
票数 0
EN

Stack Overflow用户

发布于 2011-07-19 08:23:32

SQL injection是将用户输入的值直接放入查询中的地方,允许恶意用户利用您的安全漏洞访问或损坏您的数据库。例如,您有一个要搜索的文本框,它们输入的值位于实际查询中。

除非您的命令参数是由用户动态输入的,否则SQL注入不会构成威胁。

票数 4
EN

Stack Overflow用户

发布于 2011-07-19 09:14:53

如果您使用的是原始SQL,那么您可能会使用DataTable对象,对吧?如果您使用的是DataTable,则可以在使用DataView从数据库中提取数据后对其进行排序,并将控件绑定到DataView。这样,就不会授予用户提交的数据访问您的SQL的权限。所以,在你的代码中,你可以这样做:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6740984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档