Ajax安全性:外部带有Object的JSON



正如Owasp CheatSheet系列中所提到的,在"防止旧浏览器的JSON劫持"一节中,应该始终返回外部带有对象的JSON。因此,相同的引用断言如下JSON是可利用的:

[{"object": "inside an array"}]

它还指出以下JSON格式不可利用:

{"object": "not inside an array"}

然而,当我对数据库运行查询并使用fetchAll(PDO::FETCH_ASSOC(时,它会使数组完全采用第一种可利用的JSON格式。如何使fetchAll中的JSON成为第二种不可利用的格式?

已编辑

以下是我的phpfetchAll((脚本:

public function retrieveData() {
$conn = parent::connected();
$inactive = '0';
$sql = "SELECT * FROM `category` WHERE term_status != :status";
$stmt = $conn->prepare($sql);
$stmt->bindParam("status", $inactive, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

感谢。

基本上,总是返回一个对象,其中包含一个保存结果数组的属性。对你来说,它会是这样的。

return [ 'result' => $stmt->fetchAll(PDO::FETCH_ASSOC) ];

它将返回类似以下内容:

{ 'result': [ ...rows ] }

相关内容

  • 没有找到相关文章

最新更新