私は、サードパーティ(facebook)認証を使用してiOSアプリ(Swift)を開発しています。私はどのように私は自分のサーバーにFacebookからのアクセストークンをスローすることができるかという質問に遭遇した。私は以下のようなものを書いてきたfacebookトークンをサーバーに安全にスローする方法は?
..
Alamofire.request(.POST, "https://example.com/user/fb", access_token: facebook_access_token)
は、私はこれは十分に安全であるか分かりません。 はそれだけではなく、私もメール/パスワードログインを実装したときに、私は以下のようなものを書いてきた。..
var user = [email: "[email protected]", pass: "password"]
Alamofire.request(.POST, "https://example.com/user/", user: user)
は十分に安全なものであり?またはベストプラクティスがある場合はお知らせください。 ありがとう!
_ "正しい方法は、各クライアントでパスワードをハッシュし、サーバーにハッシュ値を送信することです" _ - それだけではあまり変更されません。シナリオAでは、途中でサーバーに送信するパスワードを盗聴することができれば、アクセスできます。そしてシナリオBでは、もし私がそのハッシュを嗅ぐことができるなら、私はアクセス権を得ます...これは、あなたがそれの上に何らかの形のチャレンジ - レスポンスを実装すれば意味があります。 – CBroe
こんにちはCBroe、ハッシュ値は本当に本当に解読するのが難しいです。だからこそ私は、このケースではiPhoneであるクライアントでパスワードをハッシュすることを提案したのです。したがって、中間の人は、完全なパスワードを取得するのではなく、ハッシュ値を取得するだけです。それはパスワードを公開するよりもやや良いようですが、あなたは思いませんか? –
サーバがパスワードの単純なハッシュを送信したことに基づいてクライアントアクセスを許可した場合、そのハッシュを「復号化」する必要はありません。同じハッシュ値を送信するだけで済みます(これは、このシナリオでは)。 SSL/TLSが利用できない場合、単純なクライアント側のハッシングが意味をなさないでしょう。その場合、少なくともパスワードが「プレーンテキスト」として送信されることを防ぎます。 – CBroe