Разрешения для push-уведомлений

Попытка обойти несколько угловых случаев, когда push-уведомления запрещены в Приложение и у меня есть два вопроса:$ @ ”(Перенаправляет вывод на цель) неправильно? Трудно поверить, но мне кажется, что общая идиома Makefile"> $ @ "неверна. В частности, цель, в правиле которой есть команда, которая терпит неудачу, но использует это перенаправление, потерпит неудачу первой ...

Трудно поверить, но мне кажется, что общая идиома Makefile "> $ @и в настоящее время я вставляю сгенерированный HTML ...

Я пишу приложение на основе сервлета, в котором мне нужно предоставить систему обмена сообщениями. Я спешу, поэтому я выбираю CKEditor , чтобы обеспечить возможности редактирования, и в настоящее время я вставляю сгенерированный HTML-код прямо в веб-страницу, отображающую все сообщения (сообщения хранятся в базе данных MySQL, к вашему сведению). CKEditor уже фильтрует HTML на основе белого списка, но пользователь все еще может внедрить вредоносный код с помощью запроса POST, поэтому этого недостаточно.

Хорошая библиотека уже существует для предотвращения атак XSS путем фильтрации тегов HTML, но она написана на PHP: HTML Purifier

Итак, есть ли подобная зрелая библиотека, которую можно использовать в Java ? Я спешу, поэтому я выбираю CKEditor для обеспечения возможностей редактирования, и в настоящее время я вставляю сгенерированный HTML-файл прямо в веб-страницу, отображающую все сообщения (сообщения хранятся в базе данных MySQL, к вашему сведению). CKEditor уже фильтрует HTML на основе белого списка, но пользователь все еще может внедрить вредоносный код с помощью запроса POST, поэтому этого недостаточно.

Хорошая библиотека уже существует для предотвращения атак XSS путем фильтрации тегов HTML, но она написана на PHP: HTML Purifier

Итак, есть ли подобная зрелая библиотека, которую можно использовать в Java ? Я спешу, поэтому я выбираю CKEditor для обеспечения возможностей редактирования, и в настоящее время я вставляю сгенерированный HTML-файл прямо в веб-страницу, отображающую все сообщения (сообщения хранятся в базе данных MySQL, к вашему сведению). CKEditor уже фильтрует HTML на основе белого списка, но пользователь все еще может внедрить вредоносный код с помощью запроса POST, поэтому этого недостаточно.

Хорошая библиотека уже существует для предотвращения атак XSS путем фильтрации тегов HTML, но она написана на PHP: HTML Purifier

Итак, есть ли подобная зрелая библиотека, которую можно использовать в Java ? Простая замена строки, основанная на белом списке, кажется недостаточной, поскольку я бы тоже хотел отфильтровать искаженные теги (что могло бы изменить дизайн страницы, на которой отображается сообщение). 1248 Если нет, то как мне действовать? Синтаксический анализатор XML кажется излишним.

Примечание. В SO много вопросов по этому поводу, но все ответы относятся к фильтру ВСЕХ тегов HTML: я хочу сохранить допустимые теги форматирования.

15
задан Anthony Johnston 29 December 2015 в 10:50
поделиться

3 ответа

Вы должны использовать AntiSamy. (Вот что я сделал)

9
ответ дан 1 December 2019 в 01:45
поделиться

Я рекомендую использовать для этого Jsoup. Вот выдержка из его сайта.

Дезинфекция ненадежного HTML

Проблема

Вы хотите разрешить ненадежным пользователям предоставлять HTML для вывода на вашем веб-сайте (например, для отправки комментариев). Вам необходимо очистить этот HTML, чтобы избежать атак межсайтового скриптинга (XSS).

Решение

Используйте jsoup HTML Cleaner с конфигурацией, указанной в белом списке .

 Строка небезопасна =
 "

Ссылка

"; Безопасная строка = Jsoup.clean(unsafe, Whitelist.basic()); // сейчас:

Ссылка

Jsoup также предлагает больше преимуществ. См. также Плюсы и минусы парсеров HTML в Java .

22
ответ дан 1 December 2019 в 01:45
поделиться

Если ни один из готовых вариантов не кажется вам достаточным, есть отличная серия статей о XSS и предотвращении атак в Google Code. Он должен предоставить много информации для работы, если вы в конечном итоге пойдете по этому пути.

2
ответ дан 1 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: