1

我只是想知道如何防止用户在将结果提交到数据库之前更改 Chrome 中检查元素的 id。在我的网站上,我创建了一个点赞按钮,这个按钮有自己的 ID,如下所示(id='1')。单击此按钮后,我使用 ajax 在我的数据库中发送数据,并使用我从 ajax 传递的相同 ID 更新列。但是,如果用户在提交数据之前在 Chrome 中的检查元素上更改了此 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');
    });

});
4

5 回答 5

5

the only solution is to check serverside if the current id is likable or not before saving in db. You should always have these check before saving in DB.

于 2013-05-26T10:25:40.983 回答
1

不要(我重复一遍不要)相信来自客户的任何东西。

在将数据(业务资产)推送到数据库之前进行验证和验证。

为什么不在数据获得您的奖赏和荣耀之前验证和验证数据呢?

于 2013-05-26T10:41:39.783 回答
0

Preventing the user from changing anything on their browser is not quite possible. And, besides, it's the wrong approach to ensuring your data-integrity. Even if there was no way that users could change the values from the inspect-element feature, there are several ways that incorrect data can be sent to your server (e.g. making POST requests using javascript). So, what you need is to perform the validations on the server before persisting the data.

When you receive the data, query the database with the user's id and the submitted comment's id to make sure that they are actually allowed to do that.

于 2013-05-26T10:28:25.040 回答
0

服务器端验证是处理此类场景的正确方法。应在服务器端对每个请求进行权限检查,以便只有授权用户才能访问

于 2013-05-26T10:29:25.130 回答
-1

尝试制作一个可以在用户使用它来操作您的网站之前刷新数据库中所有数据的功能

于 2018-06-25T08:39:38.083 回答