Обеспечение безопасности Rails API с помощью https - PullRequest
4 голосов
/ 06 февраля 2012

Я создаю свой первый API и использую Ruby on Rails. API будет строго сервер-сервер. Я много читал о методах защиты API, подобных этому, и решил, что использование https может быть самым простым способом, а не Oauth.

Дополнительная информация:

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

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

Мой вопрос: как вы решаете принудительно использовать https на клиентском сервере? Есть ли какие-либо другие вещи, которые мне нужно сделать с моей стороны, кроме как для того, чтобы маршруты API использовали протокол https?

1 Ответ

8 голосов
/ 06 февраля 2012

HTTPS делает только две вещи: * Дайте вам теплое нечеткое ощущение, что вы общаетесь с нужным сервером * Используйте шифрование для предотвращения подслушивания и взлома.

Это не ограничивает доступ к вашему API. Использование HTTPS для конфиденциальных данных является обязательным, поэтому используйте его. Вы можете настроить свой сервер переднего плана (например, nginx) для использования исключительно SSL (например, не настраивайте порт 80 / HTTP). Подробнее здесь: http://ariejan.net/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails

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

Самая простая форма аутентификации, которую вы можете использовать, требует токена аутентификации. Каждый запрос должен включать этот токен API, который вы можете проверить на стороне сервера. Вы также можете использовать его для записи показателей об использовании.

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

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