2016-05-10 3 views
2

私はウェブ開発者です。ユーザーセッションの管理にSESSION(より正確にはCOOKIES)を使用する方法を学びました。しかし、モバイルアプリケーションに関して言えば、アプリケーションの通常の習慣に従い、安全なシステムを確保するためにシステムをどのように実装すべきかについて、私は混乱しています。現代のモバイルアプリケーションでセッションを管理する練習

最初に私が混乱しているのは、セッションをアプリケーションにどのように格納するかです。例えば、PhoneGapにはCOOKIESがなく、COOKIESの動作をシミュレートするためにローカルストレージを使用する必要があります。私はネイティブアプリケーションの開発の分野にいるいくつかの友人に尋ねました。彼らはまたAndroidでsharedpreferencesとiOSを使用して、ほとんどの場合ユーザーデータを保存するのと同様の手法を使用しています。

  1. モバイルアプリケーションでは、COOKIESを使用しないでください。代わりに、セッションデータの管理をアプリケーションレベルに移行する必要がありますか?セッションをアプリケーションストレージに保存する必要がありますか?これが私が最初に尋ねたいことです。

もう1つはセッションの更新についてです。ウェブサイトでは、一般的な(そして簡略化された)セッション検証ルーチンは次のようになります:ユーザーが新しいページを要求するたびに、ユーザーが提供するセッションを最初に検証します。その後、古いセッションが更新され、COOKIESに保存されます。次回は、ユーザーが新しいセッションでページを要求します。セッションが終了すると、ユーザーは再度ログインするようにリダイレクトされます。

しかし、これは今日のアプリケーションの世界がどのように見えるかと100%合わないことがあります。私は、少なくとも私の経験から決して完全にアプリケーションから完全にログアウトしていた(Facebook、Dropbox、Instagramなどの例)。彼らのセッションがどのように機能しているかについてはあまりよく分かりません。しかし、この動作を観察することで、そこにセッション満了ポリシーがないことを暗示しているようです。これは私がセキュリティコースやOWASPで学んだことから、セキュリティ上の脅威でなければならないので、私は混乱しています。

  • ここで私が尋ねたいことは次のとおりです。工業的な実践では、セッション有効期限ポリシーはモバイルアプリケーション環境でどのように設計されていますか?セッションは、次回ユーザーがアプリケーションを再び開くまで続きますか?さらに、開発者として、悪いUXを作成しないうちにセキュリティを保証するセッションをどのように設計するべきですか?例えば、数日間アプリケーションを使用しないたびに再度ログインする必要がある場合、ユーザーは間違いなく不幸になります。
  • もちろん、セキュリティは大きな話題であり、すべての詳細を1つの回答で言及することは不可能ですが、全体像と私が掘り起こすことができる資料が私の質問を解決するでしょう。

    ありがとうございます。

    答えて

    0

    私は銀行アプリケーションの経験があり、ログイン時に(手動で)各Webサービスの呼び出しを確認するためのセッションキーを保存し、サーバーはそのキーが有効かどうかを処理し、そうでない場合はログアウト応答を返します。ログイン画面にアプリから起動させるようにします(あなたが言ったように、標準的なもの)。我々はまた、アプリケーション(およびサーバー側、セッションを無効にする)に非アクティブである場合、自動ログアウトするタイマーを持っています。あなたのFacebookアカウントが侵害された場合、(おそらく)あなたの生活を失うことはありませんどこに、より多くのより高いセキュリティアプリケーションのために、ユーザーは、フェイスブック、言うよりはるかに頻繁にログアウトするだろう。

    本当に必要なものによって異なります。Facebookは収入の広告に頼っているので、ユーザーは最も多くの意見を得る手間をかけずに自分のアプリに入ることができるようにしたい(セキュリティを犠牲にするが、携帯電話では少なくとも指紋やパスコードの背後にいるたとえそれがfacebook自体ではない場合でも)一方銀行アプリケーションの優先順位はセキュリティであるため、ユーザは毎回ログインする必要があります(またその上に2fa)。