2016-09-12 3 views
0

モバイルアプリを呼びかけユーザーはIonicのクラウドサービスを介して行われるため、FB、Twitter、基本(ユーザー名/パスワード)を使用してユーザーを登録する際の重労働を処理します。は、私は(基本的に角度アプリです)データは、フロントエンドのイオンモバイルアプリから取得されたC#のAzureのWeb APIのバックエンド</p> <p>権限を持っている

私のバックエンドAPIからサービスを呼び出すときに、誰かがバックエンドデータにアクセスするための内部JavaScriptコード内のハードコードされたユーザー名/パスワードを読み取らないようにするにはどうすればよいですか?

私はそれがかなり遠いことを知っていますが、APIが実際にアプリ(AndroidとiOS)から来ているということを知るためにとにかくあります。無許可?

答えて

2

エンドユーザーが使用できるJavaScriptからAPIを呼び出しているので、JavaScriptとその中に含まれているすべてのロジック/資格情報にすべてのユーザーがアクセスできると想定できます。

これにはかなり安全な方法があり、FB/Twitterとそのilkが実装しています(OAuthを使用)。基本的に、資格情報をAPIに渡すと、トークンが生成され、資格情報ではなくAPIへの後続の呼び出しに使用されます。

フォームをレンダリングするときに生成されるnoncesを使用して「無許可」リクエストをランダムに発生させないようにすることができます。また、問題のフォームを送信するために1回しか使用できません。その後、API終了時にノンスの有効性を時間制限することができます。残念ながら、それは絶対確実ではありませんが、これはあなたが得るかもしれないあらゆる種類の「ブルートフォース」攻撃の被害を制限します。

また、共有の「秘密」(要求の起源を保証する)を使用すると、十分な意志力を持つ人がアプリケーションからそれを抽出できると仮定する必要があるため、ここで実装する方法はすべて100%簡単ですあなたができる最善の方法は、各デバイスの各ユーザーに共通の秘密情報を生成させることです。

+0

私はしばしばこれを考えると同じことを考えました。それを得るのに十分な欲求とスキルを持つ人なら、あなたが含まれているこれらの小さな宝石は少なくともそれをも​​っと難しくする方法ですが、何もこれらのタイプのアプリケーションでは100%安全です。 幸いにも、このアプリは企業秘密や何か重要なものを持っていないので、これは十分に役立つはずです!再度、感謝します! –

1

短い回答:できません。
長い回答:クライアント自体の動作ではなく、クライアントの動作を検証できます(また、検証する必要があります)。
たとえば、ポケモンゴーを見てみましょう。2,3時間後、NianticがMachine Learningソフトウェアエンジニアを引き受け、ロボットをunknown6アルゴリズムを使って暗号化してからボットを停止させた後、ボットがオンラインで再び来たハードワークの数日。
あなたはこのユニバースのすべての安全な方法を使用することができます(高額な費用で)が、誰か(ソフトウェアエンジニアリングに関する知識が豊富な方)がお客様のクライアントをエミュレートしたい場合、私は彼の目的に達するでしょう

関連する問題

 関連する問題