В Meteor, как я могу разметить некоторый введенный пользователем текст перед его отображением?

У меня есть приложение Meteor 0.8.3 с шаблоном:

<template name="example">
    Description: {{desc}}
</template>

и JavaScript:

Template.example.desc = function(){
    return Session.get("desc");
}

где пользователь установил сеанс desc,

Я хочу немного разметить текст перед его отображением, например. замена возврата каретки на <br>и добавление некоторых разрывов слов (HTML-код &#8203;).

Я считаю, что я мог бы сделать это с некоторыми заменами регулярных выражений в Template.example.desc и тройные скобки {{{desc}}} в шаблоне - однако это открывает двери для пользователя, вводящего свой собственный html в строку, что небезопасно. Поэтому я бы хотел, чтобы Метеор сначала сделал строку безопасной, а затем применил мою разметку.

Как мне это сделать? Спасибо!

1 ответ

{{{desc}}} это путь Я не рассматриваю это как ошибку безопасности, так как вы можете изменить только свою собственную сессию "desc". Если вы говорите о переменной, которая сохраняется в базе данных и показывается всем пользователям, более подходящей будет проверка на стороне сервера или перенос переменной с вашей разметкой перед отправкой обратно на сторону клиента.

Другие вопросы по тегам