3

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

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

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

更新 :

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

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

4

4 回答 4

7

规则与以往一样。

永远不要相信客户。始终在服务器端验证和验证值是否符合您的期望。

这适用于隐藏字段中的值、通过 AJAX 传入的数据或来自不受您控制的机器的任何内容。

于 2012-08-21T13:02:11.147 回答
2

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

于 2012-08-21T13:02:41.197 回答
1

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

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

于 2012-08-21T13:02:57.983 回答
0

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

于 2012-08-21T13:02:25.673 回答