我只是想知道如何在提交数据库结果之前阻止用户更改Chrome中的inspect元素上的id。在我的网站上,我创建了一个like按钮,这个按钮有自己的ID,如下面的(id ='1')。单击此按钮后,我使用ajax在我的数据库上发送数据,并使用与从ajax传递的相同ID更新列。但是,如果用户在提交数据之前在Chrome中的inspect元素上更改此ID,则他们可以操作我的数据库,而不是喜欢id = 1的评论,他们可以喜欢其他评论,这些评论不应该是可爱的。反正是为了防止这种情况发生。
<input type="button" value="Like" id="1"/>
$('#button').click(function() {
var id = $(this).attr('id');
$('like_ajax.php', {id: id}, function(data) {
alert('Success');
});
});
答案 0 :(得分:5)
唯一的解决方案是在保存到db之前检查服务器端当前的id是否可爱。在保存到DB之前,您应该始终进行这些检查。
答案 1 :(得分:1)
不要(并且我重复不要)信任来自客户的任何事情。
在将数据(业务资产)推送到数据库之前验证并验证。
为什么不在获得奖品和荣耀之前验证和验证数据?
答案 2 :(得分:0)
阻止用户更改其浏览器上的任何内容是不可能的。而且,这是确保数据完整性的错误方法。即使用户无法更改inspect-element
功能中的值,也有多种方法可以将错误数据发送到您的服务器(例如,使用POST
发出javascript
个请求) 。因此,您需要在持久化数据之前在服务器上执行验证。
当您收到数据时,请使用用户的id
和提交的评论id
查询数据库,以确保实际允许他们这样做。
答案 3 :(得分:0)
服务器端验证是处理此类方案的正确方法。应在服务器端为每个请求执行权限检查,以便只有授权用户才能访问
答案 4 :(得分:-1)
尝试创建一个可以在用户使用数据库来操作您的网站之前刷新数据库中所有数据的功能