EDIT: для справки в будущем я использую определение типа содержимого не-xhtml <!html>
Я создаю веб-сайт с использованием Django, и я пытаюсь вставить произвольные json-данные на мои страницы, которые будут использоваться клиентским кодом javascript.
Скажем, мой json-объект {"foo": "</script>"}
. Если я вставляю это непосредственно,
<script type='text/javascript'>JSON={"foo": "</script>"};</script>
Первый закрывает объект json. (также это сделает сайт уязвимым для XSS, поскольку этот json-объект будет динамически генерироваться).
Если я использую функцию запуска django HTML, результирующий вывод:
<script type='text/javascript'>JSON={"foo": "</script>"};</script>
и браузер не может интерпретировать тег <script>
.
Вопрос, который у меня есть,
- Какие символы я могу избежать/не убежать в этой ситуации?
- Есть ли автоматический способ выполнить это в Python/django?