Я пытаюсь использовать библиотеку diff , чтобы регистрировать истории редактирования сообщений пользователя для моей страницы. Эта библиотека дает мне длинные JSON данные для хранения различий в моей базе данных, и я использую функцию PHP того же хранилища, чтобы преобразовать ее в табличное представление с некоторыми кодами HTML. Вот пример выходных данных:
<table class="diff-wrapper diff diff-html diff-inline">
<thead>
<tr>
<th colspan="2">Differences</th>
</tr>
</thead>
<tbody class="change change-rep">
<tr data-type="-">
<th class="sign del">-</th>
<td class="old">Donec rutrum, odio id tempus consequat, nunc nisi pulvinar dolor, ac faucibus massa erat non est. Integer blandit, eros quis sodales vulputate, erat ex euismod nisl, gravida vestibulum nibh elit pretium quam. Mauris turpis tortor, lacinia vitae purus eget, vulputate testing mollis felis.</td>
</tr>
<tr data-type="+">
<th class="sign ins">+</th>
<td class="new">Donec rutrum, odio id tempus consequat, nunc nisi pulvinar dolor, ac faucibus massa erat non est. Integer blandit, eros quis sodales vulputate, erat ex euismod nisl, gravida vestibulum nibh elit pretium quam. Mauris turpis tortor, lacinia vitae purus eget, vulputate testing mollis felis
<ins> testing</ins>.
</td>
</tr>
</tbody>
</table>
А затем я запрашиваю эти HTML данные из URL (например, / post / history / {id}), отображая ответ с помощью функции m.trust()
. Эта библиотека различий также очищает HTML от пользовательского ввода непосредственно перед созданием JSON данных, поэтому есть только <table>
, <tr>
, <td>
, <tbody>
, <thead>
, <ins>
, <del>
теги для рендеринга в front-end.
Мой вопрос: нужно ли мне беспокоиться об этом подходе? Может ли пользователь перейти к этому выводу HTML непосредственно перед тем, как он достигнет функции m.trust()
, и ввести неантизированный HTML? Можно ли поиграть с ответом URL до того, как что-то произойдет?