sql >> データベース >  >> RDS >> SQLite

Androidアプリにユーザー名とパスワードを保存するための最良のオプション

    はい、これはAndroidでは注意が必要です。ルート化されたデバイスを持っている人は基本的に自分のパスワードを世界中に表示するため、プレーンテキストのパスワードを設定に保存する必要はありません。反対に、暗号化されたパスワードを使用することはできません。これは、暗号化/復号化キーをデバイスのどこかに保存する必要があり、ルート攻撃の影響を受けやすいためです。

    私がしばらく前に使用した解決策の1つは、サーバーに「チケット」を生成させ、それをデバイスに戻すことです。これは、一定期間有効です。このチケットは、SSLを使用してすべての通信にデバイスで使用されるため、他のユーザーがチケットを盗むことはできません。このように、ユーザーはサーバーでパスワードを1回認証すると、サーバーは期限切れのチケットを送り返し、パスワードがデバイスのどこにも保存されることはありません。

    OpenID、Facebook、さらにはGoogle APIなど、いくつかの3本足の認証メカニズムがこのメカニズムを使用しています。欠点は、チケットの有効期限が切れるときに、ユーザーが再ログインする必要があることです。

    最終的には、アプリケーションの安全性によって異なります。これが単にユーザーを区別するためのものであり、銀行口座や血液型などの極秘情報が保存されていない場合は、PWDをプレーンテキストでデバイスに保存するだけで問題ありません:)

    幸運を祈ります。特定の状況に最適な方法は何でも構いません。

    編集:この手法はセキュリティの責任をサーバーに移すことに注意する必要があります-サーバーでのパスワード比較にはソルトハッシュを使用する必要があります。これは、この質問の他のコメントのいくつかに見られるアイデアです。これにより、デバイスのEditTextビュー、サーバーへのSSL通信、およびサーバーのRAMがパスワードをソルトおよびハッシュしている間以外は、プレーンテキストのパスワードが表示されなくなります。 GoodThing™であるディスクに保存されることはありません。



    1. クラスcom.mysql.jdbc.Driver...を読み込んでいますが非推奨のメッセージです

    2. MySQL DEGREES()関数–ラジアンから度に変換

    3. オラクル。日付と時刻を出力する方法は?

    4. データベース管理者向けのトップMySQLブログおよびWebサイト