【问题标题】:What vulnerability issues can occur using CakePHP's Json Data Type?使用 CakePHP 的 Json 数据类型会出现哪些漏洞问题?
【发布时间】:2015-07-09 06:44:47
【问题描述】:

This page 表示:

使用复杂类型时,验证您从最终用户接收的数据是否是正确的类型非常重要。未能正确处理复杂数据可能会导致恶意用户能够存储他们通常无法存储的数据。

当从前端接受 JSON 数据时,实际上会发生什么坏事(知道 CakePHP 在后台执行其标准安全检查)?

CakePHP 开发人员在处理单列的 JSON 输入并依赖于上面介绍的对 JSON 列类型的支持时,应该添加哪些额外的安全性?

【问题讨论】:

  • 可能有很多事情。一个例子:我有我的帖子,我可以编辑它们。如果我可以通过 AJAX 进行编辑并且 postID 在 JSON 中,您应该在服务器端检查我是否有权编辑该帖子,因为恶意用户可以编辑将要发送的所有数据。
  • 好吧,我认为这都是关于单列,而不是整个数据库行。
  • REST 无论如何都不是关于映射数据库记录的。想象一下,您可以通过PUT 更新资源状态,其语义是将现有内容替换为请求中提供的新内容 - 如果 RESTful 服务允许更新用户资源并且某个用户的资源包含角色像"role": "user" 这样的定义,用户可能会授予自己"role": "admin" 特权。为了防止这种情况,您应该事先验证传入的请求(PUT 因此允许忽略某些输入数据) - 这对于所有 Web 输入场景都很常见

标签: json rest cakephp-3.0


【解决方案1】:

主要是关注具有正确的结构和连贯的数据。

例如,如果您存储了来自用户的序列化数据,并且您希望它是这样的整数列表:

[1, 4, 5, 6]

因此您可以在应用程序的任何部分执行array_sum($values)。有人可能会提交一个看起来像这样的数组

[{a: 2}, {s: 15}, {}, 'hello']

在这种情况下调用array_sum() 会给你警告。

根据您在结构和数据类型方面的期望来验证您收到的信息非常重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2011-01-28
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多