Материал интерфейса. Показать разные компоненты в зависимости от точек останова (SSR)

Если вы выполняете любую интерполяцию на стороне сервера, единственный правильный способ сделать это - <>

$interpolateProvider.startSymbol('<{').endSymbol('}>');

. Все остальное является XSS-вектором.

Это потому что любые угловые разделители, которые не экранируются Django, могут быть введены пользователем в интерполированную строку; если кто-то устанавливает свое имя пользователя как «{{evil_code}}», Угловой будет с радостью запускать его . Однако если вы используете символ , чем escape-файлы Django , это не произойдет.

2
задан MyTitle 18 March 2019 в 14:23
поделиться

1 ответ

Нет такой проблемы в использовании <Hidden />, просто добавляется <div> с необходимым CSS, чтобы показать или нет ваш компонент. Однако лучшим подходом было бы добавить класс CSS непосредственно к вашим компонентам <Foo /> и <Bar />, чтобы избежать лишних <div> на вашей странице, например:

function MyComp (props) {

  return (
    <>
        <Foo className={props.classes.foo} />
        <Bar className={props.classes.bar} />
    </>
  )
}

необходимо в настройках SSR, потому что реализация JS может «прошить» компонент на странице, а затем удалить его после загрузки JS. Недостатком реализации CSS является то, что элемент хранится в DOM.

PS: withWidth устареет .

0
ответ дан Pablo R. Dinella 18 March 2019 в 14:23
поделиться
Другие вопросы по тегам:

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