У меня есть веб-страница, на которой необходимо выполнить следующие действия:
- динамически создать фрагмент HTML с помощью JavaScript
- открыть новое окно
- отобразить HTMLв новом окне
Мой первый подход использовал document.write
для копирования HTML в окно.В большинстве случаев это работает, но вызывает проблемы с Internet Explorer, когда в исходном окне установлено значение document.domain
.Плюс document.write
, как правило, не рекомендуется в наши дни.
Итак, мой второй подход состоял в том, чтобы поместить HTML в скрытую форму , установить цель формы в новом окне и отправить форму,Это означает, что мне нужен сценарий на сервере для ответа на форму, повторяющий содержимое POST.
Но это опасно, поскольку кто-то может сделать запрос, включающий теги <script>
в содержимое. Как я могу избежать потенциального риска XSS ?Я думаю, я мог бы отфильтровать такие вещи, как <script>
, хотя это кажется неуклюжим.Если бы я создавал HTML на сервере, я мог бы зашифровать его или добавить какой-нибудь токен, который можно проверить только на сервере.Но я создаю его на клиенте.
РЕДАКТИРОВАТЬ: Спасибо за предложения фильтрации пока.Я могу пойти по этому пути, но мне интересно: а что, если я не хочу никаких ограничений на HTML, который я создаю?Можно ли проверить, что документ создан моей страницей?