Таким образом, мой веб-сайт позволит пользователям сохранять <script>alert("hey");</script>
практически в любом поле, а затем, когда я его отредактирую, будет отображаться предупреждение, а это не должно. Читая об этом, кажется, что вы должны использовать htmlspecialchars при выборе и рендеринге данных.
У меня есть API-слой, где я выбираю данные и возвращаю json, который затем отображается с помощью jsrender.
Вот пример моего запроса и API:
$return = ["list",[]];
$sql = "SELECT * FROM `News`;"
if ($stmt = $GLOBALS['mysqli']->prepare($sql)) {
if ($stmt->execute($param)) {
$list = $stmt->fetchAll(PDO::FETCH_ASSOC);
$return["list"] = $list ;
}
}
header('Content-Type: application/json');
echo json_encode( $return);
Мои шаблоны выглядят примерно так:
<div class="card-header py-1 px-2">
{{:Comment}}
</div>
В моем API, где бы я поместил htmlspecialchars?