@hbrmdc

Как безопасно сохранять и рендерить форматированный текст в ReactJS SPA?

Мне нужно сохранять, извлекать, рендерить и редактировать форматированный текст в ReactJS WebApp.
Вместо визуального редактора на клиентской стороне использую markdown синтаксис.

Согласно документации ReactJS, использовать метод dangerouslysetinnerhtml вообще не желательно из-за уязвимости перед cross-site scripting (XSS) атаками.Я так понимаю, это значит, что злоумышленник сможет инжектировать js код, который будет исполняться при открытии страницы.
Можно ли решить эту проблему, если я буду сохранять в бд string с markdown синтаксисом вместо html, а на клиентской стороне просто конвертировать из markdown в html непосредственно перед рендером?

Если нет, то что делать с форматированием??
  • Вопрос задан
  • 505 просмотров
Пригласить эксперта
Ответы на вопрос 1
voidnugget
@voidnugget
Программист-прагматик
Можно рендерить в браузере, либо фильтровать.
Никто не мешает делать вот так
<b style="width:expression(alert('bad style!'))"> \o/ </b>

Так что, чаще всего, кастомные стили тоже напрочь выпиливают.
Хотя, после CSS кейлоггеров в скроллбарах и в SVG'шках, я уже мало чему удивляюсь.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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