7

jqueryモバイルAPIを使用して、ユーザーごとにhttp認証を必要とするAPIにアクセスする必要があります。

このアプリをウェブサイトとして利用できるようにするだけでなく、さまざまなデバイス用にコルドバにパッケージ化する予定です。

ユーザー名とパスワードを取得し、これをjavascript変数として保存するログインフォームがある場合、このデータを公開する方法はありますか?

もしそうなら、ユーザー認証の詳細の保存を処理するための最良の代替手段は何ですか?必要がなければ、中間サーバーを構築することをためらっています。

どうもありがとう。:D

4

2 に答える 2

3

ユーザー名またはパスワードをlocalStorageに保存するのではなく、アクセストークンを保存することをお勧めします。アクセストークンは頻繁に更新および変更される可能性があり、ユーザーが誰であるか、またはハッシュされたパスワードが何であるかも明らかにしません。

iOSキーチェーンに加えて、またはセキュリティを強化するためにiPhone以外のデバイス用にコーディングしている場合は、次のことができます。

  • ログイン時およびアプリを使用するたびにアクセストークンを変更します
  • サーバーデータベースにデバイスIDを保存します(http://docs.phonegap.com/en/2.2.0/cordova_device_device.md.html#device.uuidを参照)
  • アクセストークンまたはデバイスIDがデータベースに保存されているデータと一致しない場合は、localStorageをクリアし、新しいログインを要求します

デバイスIDをlocalStorageに保存しないでください。

セキュリティを強化するために、ユーザーのIPアドレスをデータベースに保存し、IPアドレスが一致するかどうかを(サーバー側で)確認することもできますが、ユーザーが新しい場所でインターネットに接続するたびにログインする必要があるため、これは多すぎる可能性があります。 IPアドレスが変更された場合。

IPアドレスをサーバーデータベースに保存し、それが一致するかどうか(サーバー側)を確認するのがおそらく最も安全です。誰かがlocalStorageデータを取得したかどうかは問題ではないからです。

于 2012-12-02T04:16:38.467 に答える
2

それで、あなたがログインするバックエンドを制御していないことを理解していますか?もしそうなら、私はユーザー名/パスワードを一度送信してから、その後のアクセスを可能にするアクセストークンを保存する傾向があります。

バックエンドを制御しないと、ユーザー名/パスワードの保存に行き詰まります。localStorageに設定するのは安全です(確かに、それほど安全ではありません。繰り返しになりますが、HTTPSでログインが行われない場合は、デバイスからのパスワードよりもパスワードの漏洩が心配になります。自体)。変数を「username/password」と呼ばず、javascriptで暗号化し、コードを難読化するのではなく、パスワードを見つけにくくすることができます。しかし、最終的には、デバイスに適切にアクセスすることで、あまり労力をかけずにいつでも取得できます。

ネイティブアプリとしてパッケージ化した後、iOSキーチェーンなどのオプションが追加されます:http ://shazronatadobe.wordpress.com/2010/11/06/ios-keychain-plugin-for-phonegap/

于 2012-10-15T13:59:30.817 に答える