2015-11-08 8 views
0

В нашем приложении на целевой странице мы показываем прокручиваемое сообщение, которое вводится на экране администратора и сохраняется в БД и отображается другим внешним пользователям при их входе в систему (например, «сайт будет недоступен» для обслуживания .. и т.д.). сообщение вводится с HTML-теги, чтобы изменить цвет и размер текста.XSS - ESAPI - кодирование javascript

Во время тестирования безопасности этот процесс не удалось, как ява скрипт был введен и он работает на целевой странице.

Мы рекомендуется использовать библиотеки ESAPI. Используются многие методы Encoder. Все они кодируют все теги. Я хочу разрешить несколько html-тегов и кодировать все остальное.

В некоторых других форумах упоминается использование дезинфицирующего средства для HTML. Каков правильный способ сделать пожалуйста.

ответ

0

Я бы не рекомендовал приложение, которое еще не использовало ESAPI для его принятия. ESAPI Java lost its flagship status in 2014 из-за отсутствия активного развития. Эта ссылка относится к одному из блогов ведущего разработчика. Насколько мне известно, нет никакой другой библиотеки безопасности: обнаружение для смешанной и множественной кодировки. Поэтому взвешивайте риски.

ЕСЛИ вам нужно выходное кодирование, используйте esapi encoder project. Каждый раз, когда вы выходите на новый контекст (HTML, Javascript и т. Д.), Вы хотите избежать данных.

Это звучит, однако, как и ваше требование, вы имеете возможность разрешить пользовательский HTML/javascript. Здесь вы захотите использовать дезинфицирующее средство для HTML.

Одним из довольно простых решений будет библиотека JSOUP. Теперь просто не используйте его для проверки ввода уценки. Он предназначен для «исправления» недействительного HTML-кода, и для подтверждения ввода вы хотите, чтобы ваш ввод был без изменений.

 Смежные вопросы

  • Нет связанных вопросов^_^