Javascript 如何隐藏数据属性

Javascript 如何隐藏数据属性,javascript,jquery,Javascript,Jquery,干草伙计们 我有个问题 是否有任何方法可以防止对HTML数据属性进行客户端操作 我的问题是,如果有人很聪明,能够查看源代码并更改属性,例如,我使用jQuery/ajax获取数据属性的值,并使用ajax将其发送到我的控制器。我的控制器现在开始检查开关盒是否与我从数据属性中获取的数据相匹配 但是,如果我更改了一些甚至不存在的数据属性值,它将显示我的默认情况 我有什么办法可以预防/避免这个问题吗 var saveAttr = jQuery('#example').attr("data-attr");

干草伙计们

我有个问题

是否有任何方法可以防止对HTML数据属性进行客户端操作

我的问题是,如果有人很聪明,能够查看源代码并更改属性,例如,我使用jQuery/ajax获取数据属性的值,并使用ajax将其发送到我的控制器。我的控制器现在开始检查开关盒是否与我从数据属性中获取的数据相匹配

但是,如果我更改了一些甚至不存在的数据属性值,它将显示我的默认情况

我有什么办法可以预防/避免这个问题吗

var saveAttr = jQuery('#example').attr("data-attr");

jQuery.ajax({
  url: "forexample",
  method: "POST",
  data: { action: "someCaseinMyController", saveAttr:saveAttr },
}).done(function (response){
  jQuery("#someDiv").html(response);
});
简短回答:没有

详细回答: 将开关大小写值转换为查找映射或数组,并在输入值时进行测试,以便在到达开关大小写之前抛出错误

可以这样做:

const arrayOfCases = ['name', 'email', 'city', 'state', 'address']

if(arrayOfCases.includes(userInput)) {
   // your switch case here
} else {
   // handle invalid data
}

有什么方法可以防止客户端对HTML数据属性的操作吗?
=>没有。哦,这真是个好主意!