Javascript 防止HTML元素进行ID操作

Javascript 防止HTML元素进行ID操作,javascript,html,jquery,Javascript,Html,Jquery,现在我在一个网页上有几个按钮,它们的ID存储为属性。按钮允许用户编辑/删除属于ID的特定数据。如何防止用户简单地操纵ID属性,从而编辑或删除不同的数据 我以“编辑”按钮为例: 因此,现在如果有人要更改ID属性,则可以访问其他用户的数据,因为该ID将通过jQuery接收,如下所示: $('[name="edit-btn"]').on('click',function(event){ var editid = $(this).attr("id"

现在我在一个网页上有几个按钮,它们的ID存储为属性。按钮允许用户编辑/删除属于ID的特定数据。如何防止用户简单地操纵ID属性,从而编辑或删除不同的数据

我以“编辑”按钮为例:

因此,现在如果有人要更改ID属性,则可以访问其他用户的数据,因为该ID将通过jQuery接收,如下所示:

$('[name="edit-btn"]').on('click',function(event){
        var editid = $(this).attr("id");
        $.ajax({
        //DB Connection, access data
        })
});
我怎样才能防止这种情况?是否有一种方法可以隐藏id或以与HTML元素不同的方式访问id?

您不能

HTML文档已由用户的浏览器呈现到DOM中

用户的浏览器属于用户,完全由用户控制

他们可以在那里改变任何他们想要的东西

不要盲目地相信来自浏览器的数据(至少在“这是用户想要的”之外,而且只有在你有合适的CSRF防御措施的情况下)。始终根据存储在服务器端的数据进行验证


如何执行此操作取决于它是什么类型的数据,但是,例如,如果HTTP请求尝试编辑用户的地址,则检查该地址是否属于当前登录的用户

另一个例子:如果它尝试下订单,然后检查项目ID是否存在,是否有库存,他们请求的是您可以提供的数量,并根据存储在数据库中的数据计算价格,而不是使用表单中提交的数据。

确实,您不能


您应该确保给定的数据是正确的。永远不要依赖用户提供的数据。始终检查您的帖子、获取和cookie数据

您无法阻止人们在前端这样做。这是一个您需要在服务器端解决的安全问题,这样您就不会依赖请求参数来识别用户您无法在前端实现此安全性,因为任何人都可以打开devtools并bodyfy/执行您的代码。您需要研究向后端添加身份验证以处理此问题。