@jazzman7

Вывести безопасно html из базы данных?

Здравствуйте, поставил WYSIWYG редактор CKEditor, выбирал между markdown и html, выбрал html и видимо зря.

Текстовые поля у меня фильтруются все на вводе, думаю все нормально у меня, дыр нет, но разметка поста ни как не выводилась дошло что не так, поставил на вывод htmlspecialchars_decode() и о чудо, появилось XSS. Подумав 5 мин пришел к тому, что все исправит - strip_tags, но не тут то было, xss и в img можно же вставить, опять не выход. Теперь вот думаю либо CKEditor на markdown перевести, но конвертор markdown в html что-то не охота писать, либо что-то с выводом html придумать, что мне кажется проще. Попробовал какую-то jevix библиотеку, увы она не работает, еще нашел htmlpurifier, но как им пользоваться не понятно. Кто, что думает ? Какой лучше оставить редактор markdown или html если html, то первый вопрос топика актуален, если второй, то как markdown в html оперативно конвертировать? Я так понял можно и с помощью js библиотек, но как лучше js или самому на php написать обработчик ?
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
profesor08
@profesor08
Используй любой понравившийся редактор. Абсолютно любой. Пусть делает все что надо, и так как ему надо. Это не имеет значения. В результате ты должен получить у себя на сервере готовый HTML код. Как ты его будешь получать - не имеет значения, хоть тебе с фронта он прилетит, хоть ты его сгенерируешь из markdown, который с фронта прилетит, хоть прочтешь из файла, но работать придется именно с этим HTML кодом. Тебе надо будет его обезопасить, а для этого существуют готовые инструменты.

Вот для для ознакомления:
php - https://packagist.org/packages/tgalopin/html-sanitizer
javascript - https://github.com/cure53/DOMPurify

По ключевым словам найдешь тонну аналогов.
Ответ написан
@entermix
Текстовые поля у меня фильтруются все на вводе

В этом и проблема, фильтровать нужно вывод, а не ввод.
Ответ написан
Ваш ответ на вопрос

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

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