Asp.net 使用属性集合存储额外数据是否安全?

Asp.net 使用属性集合存储额外数据是否安全?,asp.net,attributes,Asp.net,Attributes,使用web控件的属性集合存储额外数据是否安全 e、 g 我建议不要这样做,因为这些属性可能容易被篡改。相反,您应该在服务器上有一个对象列表,其中每个对象都存储下拉文本数据以及其中的额外数据 然后,您可以使用下拉列表的索引来确定选择了服务器上列表中的哪个对象。通常情况下,前端控件不应包含任何内容,除非能够帮助显示数据和索引。这就是为什么datagrids有一个数据索引列,因此您可以检索与该行对应的记录的索引。记录本身不存储在网格中,只显示其字段。它(很可能)会安全地到达浏览器,但所有内容都可以在那

使用web控件的属性集合存储额外数据是否安全

e、 g


我建议不要这样做,因为这些属性可能容易被篡改。相反,您应该在服务器上有一个对象列表,其中每个对象都存储下拉文本数据以及其中的额外数据

然后,您可以使用下拉列表的索引来确定选择了服务器上列表中的哪个对象。通常情况下,前端控件不应包含任何内容,除非能够帮助显示数据和索引。这就是为什么datagrids有一个数据索引列,因此您可以检索与该行对应的记录的索引。记录本身不存储在网格中,只显示其字段。

它(很可能)会安全地到达浏览器,但所有内容都可以在那里更改。因此,从浏览器中获得的任何信息都不可靠,除非您正确签名,例如使用数据哈希+秘密

比如:

HASH_FUNCTION(DATA + SECRET), DATA

您可以在服务器上检查是否有人篡改了您的数据。

是!但前提是您的数据不敏感,客户篡改数据也无关紧要。HTML5正式承认对通用数据使用data-*属性。请注意,data-*属性主要用于客户端内容;它们也可以用于服务器端。但请记住,只存储非敏感数据


我个人使用asp.net中的data-*属性简化了客户端显示链接/按钮(如删除)警告消息的过程。然后,通过访问Attributes集合中的适当data-*属性,可以根据需要在服务器端更改消息。如果客户端篡改了这些属性,只会对客户端造成伤害,因为他们可能无法收到警告消息。

我找到了另一种方法来完成我的目标,但很高兴知道这一点,谢谢。
HASH_FUNCTION(DATA + SECRET), DATA