0

Webサービスからデータを取得するSenchaTouch2アプリケーションを構築しています。アイドル状態からアプリを起動するときのセキュリティを強化するために、アプリでオプションのPIN設定を使用することをお勧めします。これを管理するための最良の方法が何であるかはよくわかりません。

WebサービスはPIN自体を保存できません。また、アプリはオンラインだけでなくオフラインでも使用できるように設計されているため、番号をデバイス自体のローカルストレージに保存する必要があります。これが何らかのレベルのセキュリティを提供しているとは確信していません。また、iOSではローカルストレージが一時的なものとして扱われているように見えるため、ローカルストレージに番号を設定しても、必ずしもそこにあるとは限りません。

Webサービスは、APIへのすべてのリクエストに必要なデバイスに期限切れの認証トークンをすでに返しています。私の考えでは、これは十分に安全ですが、PINの考え方はクライアントにとって重要であるように思われます。

この要件をどのように管理しますか?

4

1 に答える 1

1

サーバー/クライアント間を通過する(そして両方からアクセスできる)Cookieとは異なり、sessionStorage / localStorageは具象ブラウザによってクライアントに100%保存され、sessionStorageは一時的に1つのHTTPセッションにデータを保存し、localStorageは永続的なデータをクライアントにハードに保存しますディスク。利点は明らかです:

  • データはHTTP要求/応答を介して渡されず、帯域幅が節約されます。
  • 4KBの制限はありません。ウェブサイトには、クライアントに大きなデータを保存するための柔軟性がはるかにあります。
    注:W3C「ドメインごとに5メガバイトのlocalStorageサイズ制限を推奨」、および「ウェルカムフィードバック」、これはCookieの4KB制限よりもはるかに大きいです。
  • データがネットワークを通過しないようになったため、これは比較的安全になります。
  • さらに#3によると、データを暗号化する必要がないため、データはクライアント側に保存されるため、理論上、既存のHTTP接続の多くはWebストレージを採用することでプレーンHTTPを使用できます。HTTPは通常HTTPと比較してパフォーマンスが10%しかないため、最終的にはパフォーマンスが向上するか、コストが節約されます(より安価なサーバーハードウェアを調達します)。

だから私は(個人的に) localStorageを試してみるでしょう:)。より高いセキュリティが必要な場合は、ローカルストレージに保存する前にピンをさらに暗号化できます(例: http: //point-at-infinity.org/jsaes/ )。

于 2012-12-07T18:03:20.240 に答える