Моя цель состоит в том, чтобы взять HTML, вводимый конечным пользователем, удалить определенные небезопасные теги как , и добавьте его к документу. Кто-либо знает о хорошей библиотеке Javascript для очистки HTML?
Я искал вокруг и нашел несколько онлайн, включая синтаксический анализатор HTML John Resig, простой синтаксический анализатор HTML Erik Arvidsson и Дезинфицирующее средство Google Caja, но я не смог найти много информации о том, были ли у людей хорошие события при пользовании этими библиотеками, и я волнуюсь, что они не достаточно действительно устойчивы для обработки произвольного HTML. Я был бы более обеспечен просто отправка HTML к моему серверу Java для санитизации?
Вы можете анализировать HTML с помощью jQuery , но я почти уверен, что любой подход к дезинфекции, основанный на черных списках (то есть фильтрация), потерпит неудачу - вам, вероятно, понадобится " фильтрация в подходе, и, в конечном счете, вы все равно не хотите полагаться на JavaScript для обеспечения безопасности. В любом случае для справки вы можете использовать jQuery для парсинга DOM следующим образом:
var htmlS = "<html>etc.etc.";
$(htmlS).remove("script"); /* DONT RELY ON THIS FOR SECURITY */
Будет ли лучше, если я просто отправлю HTML на Java-сервер для дезинфекции?
Да.
Фильтрация "небезопасного" ввода должна осуществляться на стороне сервера. Другого способа сделать это не существует. Невозможно сделать фильтрацию на стороне клиента, потому что "сторона клиента" может быть веб-браузером, или это может быть бот со скриптом.