я могу безопасно получить доступ к Gmail для приложения Rails на общем хостинге без SSL, не подвергая риску учетные данные? - PullRequest
2 голосов
/ 30 января 2012

То есть вам нужно приложение на Rails, которое позволяет мне видеть настроенное представление календаря Gmail пользователя. Но это будет на виртуальном хостинге, поэтому не нужно хранить учетные данные или иметь их в открытом виде.

Вопрос. Могу ли я получить безопасный доступ к Gmail для приложения Rails на виртуальном хостинге без SSL, не подвергая риску учетные данные? Как бы я это сделал? (например, решает ли это OAuth или OpenID)

Требования будут:

  • Приложение Rails будет вызывать Календарь Google через API
  • На сайте общего хостинга не хранятся учетные данные (например, в базе данных и т. Д.) - ОБЯЗАТЕЛЬНО
  • Сайт Rails не-SSL - ОБЯЗАТЕЛЬНО (для целей этого вопроса)
  • Возможность оставаться в системе, пока браузер все еще открыт - ЖЕЛАТЕЛЬНО (предположим, что используется идентификатор сессии ... при условии, что это безопасно)

Например, использованный мной подход к выходу, который не удовлетворял бы моим требованиям на моем сайте рельсов, не поддерживающих SSL (на общем хосте), будет:

# Get Google Calendar
service = GCal4Ruby::Service.new
service.authenticate("<google account name>", "<password>")  # <== requires password
cal = GCal4Ruby::Calendar.find(service, "myCalendar")[0]

# Get Google Events
search_str = "<search str>"
@events = GCal4Ruby::Event.find(cal, search_str, params)

1 Ответ

3 голосов
/ 30 января 2012

Вы получите смешанный контент, если попытаетесь включить на страницу http https представление календаря Google, загруженное как iframe.

Если вы просто выполняете вызовы API, то долгопоскольку вызовы API поступают с вашего сервера на зашифрованную конечную точку, https://calendar.google.com или что-то подобное, проблем не возникает.

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

Если вы отправляете учетные данные в браузер, вам также следует беспокоиться об эксфильтрациичерез XSS.

...