web-dev-qa-db-ja.com

アプリ内ソーシャルログインダイアログが安全であることを確認するにはどうすればよいですか?

Facebookアカウントからアプリにログインするなど、何らかのソーシャルログイン機能をサポートするモバイルアプリがあり、アプリがモバイル内のアプリ内のFacebookログインページを開いている場合、それを確認する方法はありますか私は本当にFacebookサイトに接続していますか?

instagram login

これは、Instagramのプロフィール写真を電話の連絡先と同期できるアプリからのものです。私はこのアプリを信頼しており、ログインしたら、アプリの権限を受け入れる必要があります。

問題は、リンクが標準のブラウザーで開かず、URLを確認できないことです。誰かがアプリを作成し、そのようなログインボタンを追加し、偽のサイトを開いてパスワードを収集した場合、HTTPS EV証明書の情報やログインページのURLが表示されないので、私にはかなり可能に見えます。

  • 消費者として、そのような埋め込まれたログインページが正当であることをどのように確認できますか?
24
Ayesh K

少なくとも、モバイルOS開発者が セキュリティよりもUXを優先する を停止するまではできません。

現時点でできる最善の方法は、使用しているアプリが正当で信頼できる開発者のものであることを確認し、アプリが要求する認証情報がアプリの機能に関連していることです(Instagramの認証情報を要求して投稿する写真アプリ)申し分ないようですが、Spotifyの認証情報を要求する同じ写真アプリの方が疑わしいでしょう)。また、アプリの開発者によって侵害された特定のアカウントを検討する必要があります。そのため、そのアカウントを他人に見せたくない情報に使用しないでください。 OAuthトークンを取り消さないサイトによっては、将来の不正な(正当なOAuthフロー以外の)アクセス)アクセスを防ぐためのソリューションは、パスワードを変更します。OAuthトークンは引き続き有効であるため、アプリの正当な機能は引き続き機能しますが、取得したパスワードを使用した不正なログイン試行は成功しません。もちろん、これは真に悪意のあるアプリはおそらくサーバーでボットを実行しているため、入力した2番目にアカウントの電子メールとパスワードを変更し、アカウントにアクセスできないようにするので、完全ではありません。

長期的には、解決策はモバイルOS開発者に私の最初のリンクで説明されているナンセンスを停止するか、少なくともアプリが認証情報をリクエストするために使用できる安全なOS制御のWebView代替を提供するよう圧力をかけることです。そのWebViewは、それが実際にOSで制御されていることをユーザーに証明し(ホームボタンの押下をインターセプトするなど、通常のアプリではできないことを行うことにより)、アプリから要求されたURLを明確に表示して、フィッシングサイト。

20
André Borie

これはちょうど私に起こりました。私がしたことはそれを信頼せず、次の手順に従います:

  1. Facebookで接続されているデバイスを確認し、新しいデバイスの通知を受け取ることを確認します。
  2. Facebookのパスワードを、パスワードマネージャーから提供されたランダムなものに変更します。
  3. アプリ内ビューでそのパスワードを入力します
  4. Facebookのパスワードをもう一度別のパスワードに変更します。プロンプトが表示されたら、すべてのデバイスからログアウトしないでください。
  5. すべてが正しいか確認します。

そうすれば、確かにそのときに接続したのは私だけであり、誰も有効なFacebookパスワードを持っていないことがわかります。

ただし、同じアプリが私に将来的に本人確認を要求する可能性があり、毎回これらの手順を実行することは本当に不便であるため、PITAです。

6