Express. js как безопасно получить запрос IP? - PullRequest
1 голос
/ 02 апреля 2020

Поскольку я не могу использовать SSL на некоторых серверах, которые отправляют конфиденциальные данные, используя bearer tokens. Я думал о назначении IP-адреса, когда пользователь входит в систему, и присоединении его к каждому JWT в базе данных, и проверке его перед обновлением (токены доступа с коротким сроком службы). Проблема, которую я обнаружил, заключается в том, что я не знаю, как безопасно получить IP-адрес в бэкэнде.

Я видел, что вы можете установить app.set('trust proxy', true) для вашей инициализации express, а затем получить IP-адреса с помощью req.ip, но, очевидно, поскольку app.set доверяет прокси, это означает, что заголовок, полученный express, может быть изменен атакующим, верно? Так что это было бы бессмысленно, поскольку любой мог бы встроить поддельный ip.

Есть ли альтернатива этому, не использующая ssl и не использующая aes для шифрования токенов на предъявителя?

1 Ответ

1 голос
/ 02 апреля 2020

Как уже упоминалось в CaptEmulation, вы должны всегда включать SSL на производственных серверах, особенно при аутентификации пользователей.

При этом я считаю, что невозможно подделка IP-адреса при отправке запроса на сервер. IP-адрес используется для маршрутизации данных обратно злоумышленнику, поэтому он должен быть либо IP-адресом, назначенным провайдером, VPN или прокси-сервером.

ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: Как уже упоминалось с помощью jfriend00, хотя невозможно подделать IP, без SSL, можно собрать атаку человек посередине и перехватить или манипулировать данными, которые передаются между пользователями и сервер.

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