0

我在我的 ASP.NET 页面中自动生成一个表单。这已经过测试和工作。我想知道是否:

  1. 如果将数据库 ID 作为我的控件 ID 的一部分存储有任何安全问题?我可以想到 2 个问题: id 将在页面源中可见(在这种情况下并不重要),以及有人可能以某种方式更改控件的名称?这第二种可能性更为严重。这是一个潜在的问题吗?如何消除它?

  2. 如果有更好的方法将唯一数据与任何类型的控件相关联?是否可以在控件的视图状态中存储自定义项?

4

5 回答 5

0

不要在您的页面中存储任何与数据库相关的内容。您正在向人们提供应该隐藏在视野之外的系统知识。

如果您必须存储数据库 ID,请将其存储在会话中或将其放入您的 web.config 文件中。

于 2010-04-22T21:12:52.640 回答
0

例如,您可以创建自己的自定义控件,从 TextBox 继承。创建在 ViewState 中存储数据的属性。这是我达到您需要的结果的最快和最简单的方法。

于 2010-04-22T20:33:18.727 回答
0

只需将它们保存在视图状态中

viewstate["DB_ID"] = datarow("ID")
于 2010-04-22T20:37:01.183 回答
0

您可以使用隐藏字段。或者最好的方法是将您的 ID 存储在 Session 中。会话真的很安全。

于 2010-04-22T20:49:40.173 回答
0

在页面中使用数据库 ID 没有任何问题。只需查看此页面或几乎任何其他 MVC 样式站点的 URL。它本身不是安全风险,除非您的系统容易受到 SQL 注入攻击 - 如果是,那么您需要担心更大的问题。

于 2010-04-22T21:17:42.787 回答