Ajax Безопасность: JSON с Объектом снаружи - PullRequest
1 голос
/ 23 марта 2020

Как упоминалось в Ow asp CheatSheet Series , в разделе «Защита от JSON угона для старых браузеров» всегда следует возвращать JSON с объектом снаружи. В результате, та же самая ссылка утверждает, что JSON, подобный следующему, может использоваться:

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

Также говорится, что следующий формат JSON не может быть использован:

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

Однако, когда я запускаю запрос к базе данных и использую fetchAll (PDO :: FETCH_ASSO C), он приводит массив точно в первый пригодный для использования формат JSON. Как я могу сделать JSON из fetchAll во втором неиспользуемом формате?

EDITED

Ниже приведен мой php fetchAll () скрипт:

    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);
    }

Благодарности.

1 Ответ

2 голосов
/ 23 марта 2020

По сути, всегда возвращайте один объект со свойством, которое содержит ваш массив результатов. Для вас это выглядело бы так:

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

Что вернет что-то вроде:

{ 'result': [ ...rows ] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...