关注data- *属性的安全性?

时间:2012-08-21 12:59:42

标签: jquery asp.net custom-data-attribute

我刚开始使用data- *属性来存储View所需的自定义属性和值。例如 。

<div id='someId' data-ItemValues='SomeValues'>
</div> 

基于data-*我正在做一些操作(CRUD)。如果用户在客户端(即使用firebug和其他一些开发人员工具从浏览器中)更改了data- *属性值,该怎么办? 我只是想知道,我们需要遵循什么标准,或者想知道社区如何处理这种情况。

更新:

我也将在服务器端进行验证。但在某些情况下。数据不存储在服务器中。它会被标记出来。只有当用户点击保存按钮时才会保存。

我将从javacript中选择数据并使用ajax将值发送到服务器。但我担心的是,如果用户更改了data- *属性中的值,那么即使服务器端验证也会满足要传递的规则。那我怎么防止他们?

4 个答案:

答案 0 :(得分:7)

规则与以往一样。

Never trust the client。始终在服务器端验证并验证您所期望的值。

这适用于隐藏字段中的值,通过AJAX传入的数据或来自不在您控制范围内的计算机的任何内容。

答案 1 :(得分:2)

您在标记或javascript对象中存储的任何内容都可以轻易被篡改,因此我的建议是对来自此类属性/对象的任何内容执行服务器端验证,尤其是在您将其用于CRUD或任何类似操作时!

答案 2 :(得分:1)

永远不依赖于(信任)客户端数据。

始终执行服务器端验证,以确保事务发生在正确的数据上。客户端应该是使应用程序更具互动性和响应性。

答案 3 :(得分:0)

我认为存储在data- *属性中的数据应该像任何其他客户端数据一样对待,即您应该不信任数据并在服务器上正确验证它。