Попытка обойти несколько угловых случаев, когда 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: я хочу сохранить допустимые теги форматирования.
Я рекомендую использовать для этого Jsoup. Вот выдержка из его сайта.
Дезинфекция ненадежного HTML
Проблема
Вы хотите разрешить ненадежным пользователям предоставлять HTML для вывода на вашем веб-сайте (например, для отправки комментариев). Вам необходимо очистить этот HTML, чтобы избежать атак межсайтового скриптинга (XSS).
Решение
Используйте jsoup HTML
Cleaner
с конфигурацией, указанной вбелом списке
.Строка небезопасна = ""; Безопасная строка = Jsoup.clean(unsafe, Whitelist.basic()); // сейчас:
Jsoup также предлагает больше преимуществ. См. также Плюсы и минусы парсеров HTML в Java .
Если ни один из готовых вариантов не кажется вам достаточным, есть отличная серия статей о XSS и предотвращении атак в Google Code. Он должен предоставить много информации для работы, если вы в конечном итоге пойдете по этому пути.