Отличный пост от Дэна Абрамова на эту тему. Основная идея в том, что React узлы внутри представлены в виде JSON объектов. И код, который вы считаете безопасным
<p>{message.text}</p>,на самом деле, содержит XSS уязвимость. Если message.text содержит пользовательский ввод и мы рендерим React на сервере, то злоумышленик может вставить в message.text JSON объект, который описует любую React ноду. Для того, чтобы от этого защититься, в JSON объекте должно быть свойство $$typeof и Symbol в качестве значения. В таком случае, злоумышленик не сможет заранее предсказать Symbol.
Статья - https://overreacted.io/why-do-react-elements-have-typeof-property/
Еще отличный пример - это Sequalize. Для описания запроса раньше использовались строковые операторы
Post.findAll({
where: { 'or': [{authorId: 12}, {authorId: 13}] }
});
сейчас это:
Post.findAll({
where: { [Op.or]: [{authorId: 12}, {authorId: 13}] }
});
где
Op.or это Symbol, что не позволяет злоумышленику так просто сделать ORM Injection.