Создание безопасного общего URL-адреса для доступа к веб-приложению (NodeJS) - PullRequest
0 голосов
/ 24 февраля 2020

Я создаю приложение в NodeJS + Express, где команды могут обмениваться информацией друг с другом и общаться в чате (что-то вроде форума внутренних сообщений).

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

Поэтому мне интересно, какова самая безопасная стратегия для создания URL-адреса, при котором любой пользователь, имеющий этот URL-адрес, может просматривать и редактировать данные документа / POST для моего приложения в пределах одного документа без подписи в ?

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

1 Ответ

0 голосов
/ 25 февраля 2020

Прежде всего, я абсолютно понимаю преимущества, но все же это не оптимальная идея. Однако я хотел бы обобщить некоторые мысли и рекомендации, которые помогут вам в разработке:

  • Такая ссылка не должна быть в состоянии выполнять критические действия или читать высокочувствительные данные.
  • Доступ должен быть уникальным и кратковременным. Например, клиент может ввести свой адрес электронной почты или номер мобильного телефона и получить код доступа.
  • Если вы генерируете случайные URL-адреса, они должны генерироваться безопасным случайным образом (например, uuid *). 1009 * предоставляет способ создания криптографически стойких случайных значений).

Если бы мне пришлось разработать это, я бы обеспечил как можно меньшую функциональность. Кроме того, администратор должен будет ввести доверенный адрес электронной почты и / или номер мобильного телефона при выпуске документа. URL с UUIDv4 затем отправляется на этот канал, и когда клиент нажимает на ссылку, он получает кратковременный код доступа по отдельному каналу, если это возможно (по тому же каналу, если был настроен только один). Таким образом вы предотвратите опасность несанкционированного доступа к документу в случае, если клиент перенаправит исходный URL из глупости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...