Введенный пользователем контент надежно с минимальными усилиями (моя цель - веб-приложение, не пишущее кучу кода, связанного с безопасностью).
Сколько кода безопасности вам нужно написать, зависит от того, насколько вы подвержены риску (насколько вероятно, что кто-то захочет атаковать ваш сайт, что само по себе связано с тем, насколько популярен ваш сайт).
Например, если вы пишете общедоступный блокнот, который будет иметь в общей сложности 3 пользователя, вы можете избежать минимума, если, однако, вы пишете, что мы ненавидим Китай, Иран и все хакеры / взломщики, имеющие дело на сумму 1 000 000 долларов транзакций в час и 3 миллиардов пользователей, вы можете быть немного больше цели.
Проще говоря, вы не должны доверять никаким данным, которые поступают извне вашего приложения, в том числе из хранилища данных. Все эти данные должны быть проверены на то, что вы ожидаете.
Я не проверял входящие строки Java на XSS, однако удаление HTML обычно достаточно хорошо, и Jsoup выглядит интересно для этого (см. Удаление тегов HTML из строки )
Также, чтобы убедиться, что вы должны обеспечить вывод того, что вы ожидаете выводить, а не какой-то JavaScript.