2016-12-11 11 views
0

私はCordovaフレームワークを使用してWebアプリケーションを作成しています。 私のプロジェクトは、次のように構成されていますハイブリッドモバイルアプリ:クライアント側で実用的なデータを保存する

root 
----- hooks 
----- platforms 
----- plugins 
----- res 
----- www 
--------- css 
--------- img 
--------- js 
--------- res 
--------- spec 

私のjsフォルダで、私はログインを実行するために遠方のサーバーへのHTTPSリクエストを実行する必要があります。私のアプリでは、SERVER_URL、USERNAME、PASSWORDのうち、最も安全なものを保存する必要があります。

今日、これらのデータは、jsファイルに文字列として直接書き込まれます。

これらの賢明なデータをWebアプリケーションプロジェクトに保存するには、どのような方法が最適ですか?

+0

ユーザー(人物)またはアプリケーション自体を認証しますか?後者は不可能で、最初はjsファイルにユーザー資格情報を格納しないことに注意してください。 –

+0

私は認証したい人です。ログインが完了すると、後ですべての要求に使用される応答のsessionidが取得されます – wawanopoulos

答えて

0

正しいことはOAuth2です。ユーザーが最初にログオンすると、ユーザー名とパスワード(初期認証がパスワードベースであれば通常はそうです)を入力し、サーバーはユーザーとデバイスに固有のアクセストークンをユーザーに提供します。あなたのアプリはユーザーのアクセストークンを保存するだけで、あなたのアプリはそれを安全な場所、つまり安全な場所に保存する必要があります。モバイルプラットフォーム上のキーチェーン/キーストアソリューション攻撃者がアクセストークンを取得するという非常に関連性の高い脅威であることに注意してください。時には、サーバー上で無効にし、新しいトークンを発行する必要があります。これは、すべてが意図どおりに行われている限り、ユーザーにとって透過的になる可能性があります。また、ユーザーがアクティブなアクセストークン(別名「デバイス」)を見直し、自分のデータにアクセスできないようにするアクセス権を削除する機能も必要です(つまり、妥協)。追加のセキュリティ管理として、新しいアクセストークンが付与されたとき(つまり新しいデバイスが追加されたとき)に電子メールを送信することができます。

これがすべて存在せず、ユーザが自分のユーザ名と普通の古いセッションIDを受け取るためにパスワードを使用すると、それを一種のアクセストークンとして扱うこともできます。技術的には、結局はアクセストークンの形式です。必要に応じてキーストアに格納することができますが、危険にさらされ、攻撃者によって盗まれる可能性があることに気づく必要があります。その場合、ユーザーはおそらくセッションを無効にする方法が全くわからない。これらのリスクを緩和すると、上記の適切な解決策が得られます。 :)

お客様のパスワードは、クライアントに保存しないでください。

サーバのURLは秘密ではありません。誰でもアプリを使用すると、とにかく簡単に見つけることができます。

関連する問題