Как избавиться от ломающих тегов HTML которые создаются пользователем на странице?

Я создаю сайт какойто и пользователь может создать текст и публиковать ее . Проблема в том что если пользователь вводит в текст теги html и как то их стилизует style="style: value" то после публикации текст ломает страничку и этого не должно быть .
Вопрос:
Какие есть способы убрать эту лазейку ?
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега JavaScript
Python, JS, WordPress, SEO, Bots, Adversting
Использовать санитайзеры, например, библиотеки:
https://github.com/cure53/DOMPurify
https://github.com/apostrophecms/sanitize-html
Какие есть способы убрать эту лазейку ?

Предположим, что пользователь вводит текст и жмет кнопку Сохранить > Получаем текст (на сервере или где?) > Чистим его (библиотеки выше) > Публикуем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Так в чем проблема? В тегах как таковых или в их стилизации?
В первом случае - php strip_tags или аналогичный функционал другого ЯП на стороне сервера, во втором случае - редактор с поддержкой bbcode + strip_tags на стороне сервера.
Ответ написан
Комментировать
@My1Name
С помощью JS можно просто запретить теги, при этом оставить только те, что вам надо, например img.
var bodyText = text.replace(/<!--[\s\S]*--!?>/g, "").replace(/<(?!img)\/?[a-z][^>]*(>|$)/gi, "");

А вообще, по идее в каждом языке программирования есть библиотеки - парсеры. Например в JAVA есть замечательный плагин (API) JSOUP. Он позволяет находить теги и работать с DOM по аналогии JavaScript.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы