javascript - POST 操作、篡改数据和 AJAX 安全问题

标签 javascript ajax database security http-post

当我处理 AJAX 应用程序时,我会经常通过 POST 传递参数。应用程序的某些部分可能会发送相同数量的参数或相同的数据集,但根据我传递的自定义参数,它可能会做一些完全不同的事情(例如删除而不是插入或更新)。发送数据时,我通常会这样做:

$.post("somepage.php", {action: "complete", somedata: data, moredata: anotherdata}, function(data, status) {
    if(status == "success") {
        //do something
    }
});

在应用程序的另一部分,我可能有类似的代码,但不是将操作属性设置为 deny 或某些应用程序特定的东西,而是触发代码在服务器端删除或移动数据。

我听说过可以修改 POST 请求和与之相关的数据的工具,但我只使用过一种名为 Tamper Data for Firefox 的工具。我知道有人修改 POST 请求的数据的机会很小,甚至更小,因为他们更改关键属性以使应用程序在后端执行不同的操作(例如更改 action: "complete"action: "deny"),但我确信它发生在对 Web 应用程序的日常攻击中。谁能提出一些避免这种篡改的好方法?我想到了几种方法,包括检查触发事件的操作是否错误并验证它以及其他所有内容,但我可以看到,对于需要的应用程序的每个部分来说,这都是额外的 100 行代码保护这些类型的请求。

最佳答案

您需要像处理普通请求一样授权客户端进行 AJAX 调用。只要用户有权做他想做的事,就不会有问题。 您还应该将存储在用户 session 中的身份验证 token 传递给 protect against CSRF .

关于javascript - POST 操作、篡改数据和 AJAX 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718562/

相关文章:

javascript - 如何为主要浏览器(以及 Chrome)转换(旋转)句子中的单个字母

javascript - 管道值 : Ajax + JQuery

database - 延迟或等待声明

mysql - 电影推荐引擎概念数据库设计

java - 如何取回以二进制形式存储在数据库中的java UUID

javascript - TypeScript 接口(interface)是否应该在 *.d.ts 文件中定义

javascript - 为什么当我点击每个数字时,我只得到 2 个控制台。在分页JS中

javascript - 为什么不更新这个元素的宽度?查询?

javascript - 如何通过 JSON 文件使用 JQUERY AJAX 填充 2 选择标签?

javascript - Ajax beforesend 方法在某些情况下不起作用