php - 这个 JSON 代码安全吗?

标签 php json security

我有这段代码,用于检查 json 是否有效,如果有效,则 json 中的每个对象都计为 1 美元(我网站上的货币)。这是代码

<?php
if(isset($_POST['data'])) {
  $testJson = json_decode($_POST['data']);
  if($testJson) {
    $price = 0;
    foreach($testJson as $amount) 
      // I do something with $amount...
      $price++; // Augment the price
    }
  }
}

所以基本上如果 $_POST['data'][{"item":2,"id":1092,"x":198,"y":- 1}],那么价格将为 1 美元。如果是 [{"item":2,"id":1092,"x":198,"y":-1},{"item":2,"id":1098,"x": 198,"y":-1}] 价格为 2 等等...

我的问题是,即使 JSON 字符串中有多个对象,有人可以操纵 JSON,以便他们可以以 0 美元购买商品吗?

谢谢

最佳答案

如果您阅读 OWASP top 10 ,那么您可以看到此代码容易受到 CSRF 的攻击。我还会密切关注 SQL 注入(inject),因为这在 PHP 中很常见,因为许多应用程序不使用 ORM。

关于php - 这个 JSON 代码安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310725/

相关文章:

java - Jackson - 在没有注释的情况下在运行时修改属性

javascript - 如何为通过 URL 传递变量创建额外的保护? [JavaScript]

php - 如果是这样的 <keyword> 我怎样才能得到 url?

php - 使用 json 发送邮件

javascript - 使用单选按钮触发链接

javascript - 无法使用 ES6 访问我的 JSON 文件

ios - 如何提供高级 API 调用安全性 - iOS

security - Vert.X 安全性

php - mod 重写在 & 处停止,因此找不到名为 'Britain-&-Ireland.php' 的页面

php - GMaps api 地理编码奇怪的行为