Создайте безопасный токен для внешнего api Ruby on Rails

откройте свой php.ini, убедитесь, что он установлен:

display_errors = On

перезагружает ваш сервер.

0
задан nevadajames 13 July 2018 в 10:49
поделиться

1 ответ

JWT подписывает полезную нагрузку с помощью секретного ключа, а не зашифровывает его. Подпись не является неотъемлемой защитой, поскольку, учитывая ввод, она всегда возвращает тот же результат (т. Е. Начинает появляться шаблон для сигнатуры). Для максимальной безопасности вы хотите выбрать шифрование с использованием AES-256 (или выше) для полезной нагрузки.

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

Как два сервера отключены? Если служба 2 имеет ограниченное количество других сервисов для взаимодействия, и она знает, что они собой представляют, вы можете использовать заголовок CORS, чтобы гарантировать, что только услуга 1 может получать запросы от службы 2.

0
ответ дан Dan Hilton 17 August 2018 в 13:06
поделиться
  • 1
    Если я знаю конечную точку и заголовок авторизации, я могу отправить запросы на сервис 2 из любого места прямо? Либо с моего сайта, и с завихрениями, и т. Д. – Dan Hilton 13 July 2018 в 16:22
  • 2
    Да, как и сейчас, если у вас есть конечная точка и токен для ввода заголовка авторизации, вы можете получить доступ к этой службе. То, что я хочу сделать, разрешает только одному пользователю (службе 1) доступ к созданию пользовательских функций (хранить электронную почту, имя в базе данных и генерировать токены для пользователей, которые будут использовать при доступе к сервису 2). У меня в основном есть одна служба, которая отвечает за создание и управление пользователями для другой службы, которая является api для проверки данных телефона и адреса. – nevadajames 13 July 2018 в 16:31
  • 3
    Если эти службы имеют доступ к одной и той же БД, возможно, у вас может быть "admin & quot; токен (некоторый случайный секретный ключ), который генерируется и сохраняется каждые несколько часов. Служба 1 шифрует этот токен в заголовке, а служба 2 расшифровывает и подтверждает, что токен находится в db и действителен. Вы также можете добавить еще одну гарантию в сервисе 2, чтобы убедиться, что URL-адрес запроса относится к сервису 1 и отклоняет весь другой трафик. – Dan Hilton 13 July 2018 в 19:09
Другие вопросы по тегам:

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