Задать вопрос
@hbrmdc

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

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

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

Если нет, то что делать с форматированием??
  • Вопрос задан
  • 548 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
voidnugget
@voidnugget
Программист-прагматик
Можно рендерить в браузере, либо фильтровать.
Никто не мешает делать вот так
<b style="width:expression(alert('bad style!'))"> \o/ </b>

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

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

Похожие вопросы