Достаточно ли безопасны локальные данные, переданные в `res.render ()`, чтобы содержать конфиденциальную информацию? - PullRequest
0 голосов
/ 14 ноября 2018

Я довольно новичок в серверной части веб-разработки, и я пытаюсь избирательно отображать определенные элементы в зависимости от прав доступа пользователя (то есть, является ли он администратором или нет). Я думал о том, чтобы сделать что-то подобное с помощью мопса.

<body>
<h1> Header </h1>
if locals.is_admin
    p.admin-only Admin-only Content
</body>

Я бы предположил, что эти данные отбрасываются после создания страницы из шаблона, но я знаю лучше, чем доверять моим предположениям, когда речь идет о безопасности. Так это было бы безопасно сделать?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Да, это безопасно, поскольку данные администратора, которые вы передаете в шаблон, НЕ покидают сервер с предоставленной вами условной обработкой.

Будущий риск связан с тем, что в будущем разработчик внесет изменения в шаблон, чтобы случайно включить его, поскольку в шаблоне нет мер безопасности, позволяющих узнать, что защищено, а что нет.

0 голосов
/ 14 ноября 2018

Достаточно ли безопасны местные жители для передачи в res.render() для хранения конфиденциальной информации?

Это зависит. Локальные данные, переданные в res.render(), являются просто переменными на вашем сервере, поэтому они не более уязвимы, чем любые другие переменные на вашем сервере. Они являются мусором, собираемым механизмом JS, как только ваш код больше не использует их и res.render() завершил свою операцию рендеринга.

Часть "это зависит", потому что это зависит от того, что ваш шаблон делает с данными. Если шаблон включает в себя какие-либо из этих данных в отображаемом HTML-файле, тогда они будут отправлены клиенту, и, скорее всего, они НЕ защищены в любом случае.

Но если ваша логика рендеринга определяет, что пользователь не является администратором и, следовательно, не включает какую-либо конфиденциальную информацию в визуализированный HTML-файл, то эта информация не покинет ваш сервер. Таким образом, действительно в логике вашего файла шаблона следует определить, кто из локальных пользователей покидает сервер и кому (какому пользователю) он отправляется. Вот где ваши проблемы безопасности будут или могут быть. Вы надежно и правильно определяете, кто имеет административные привилегии, правильно ли использует ваш шаблон это определение, чтобы убедиться, что он не раскрывает информацию не тому пользователю, и отправляете ли вы данные администраторам, которые вам следует отправлять?

...