2012-01-30 8 views
2

つまり、ユーザーのGmailカレンダーのカスタマイズされたビューを表示できるRailsアプリケーションが必要です。しかし、それは共有ホスティングになるので、資格情報を保存したり、それらを明確にしたくない。クレデンシャルを危険にさらすことなく、SSL以外の共有ホスティングでRailsアプリのGmailに安全にアクセスできますか?

質問:クレデンシャルを危険にさらすことなく、SSL以外の共有ホスティングでRailsアプリのGmailに安全にアクセスできますか?どうすればいい? (例えばのOAuthやOpenIDのは、この問題を解決ん)

要件は次のようになります。

  • RailsアプリケーションはAPI
  • を経由して(例えばデータベースまたは任意で)共有ホスティングサイトに保存された資格情報をGoogleカレンダーを呼び出しません - MANDATORY
  • Railsのサイトは非SSLである - まだ開いてブラウザながらログインして滞在する
  • (この質問の目的のために)MANDATORY能力 - 望ましい(セッションIDを使用して、想定し...これは安全であると仮定した場合)
  • 例えば

私は非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) 

答えて

3

ます場合は、混在したコンテンツを取得しますhttpページにhttps Googleカレンダービューをiframeとしてロードしてみてください。

APIコールがサーバーから暗号化されたエンドポイント、つまりhttps://calendar.google.comまたはそれに類するものである限り、問題はありません。

ブラウザの非httpページからAPI呼び出しを行っている場合、ブラウザに送信されたカレンダーサービスに転送された資格情報を含む、任意のデータを盗聴することができます。

ブラウザに資格情報を送信する場合は、XSS経由での除外についても心配する必要があります。

+0

これは私のレールサイトにSSLを必要としませんか?はい、それは私が – Greg

+1

@ Gregを提案していたAPI呼び出しでした。サーバーからAPI呼び出しを行っていて、クライアントに資格情報を送信していない場合、盗聴はサーバーとAPIの間の接続の懸念にすぎません問題。 APIの 'https'バージョンに接続していることを確認して、盗聴から保護されている必要があります。 –

+0

ありがとうございますが、OAuthやOpenIDなどのユーザーがGoogleカレンダーの認証を受けていると仮定していますか?つまり、ユーザーが自分のカレンダーをリクエストしてからマッサージして、ユーザーに提示できるようになる前に、ユーザーがGoogleカレンダーにどのように認証されているかわからない – Greg

関連する問題