2017-04-20 7 views
-1

私のNodeJSアプリケーションは認証を持っていません。私のモバイルアプリケーションからのコールだけが機能するようにするにはどうすればよいですか?私のアドバイスはある私のモバイルアプリケーションから発信されたコールだけが機能するようにするにはどうすればよいですか?

console.log(md.mobile());   // 'Sony' 
console.log(md.phone());   // 'Sony' 
console.log(md.tablet());   // null 
console.log(md.userAgent());  // 'Safari' 
console.log(md.os());    // 'AndroidOS' 
console.log(md.is('iPhone'));  // false 

+0

より具体的には、何を呼びますか?どのようなアプリケーションですか? – itsundefined

+0

私は公開エンドポイントを持っていますが、私のモバイルアプリケーションを通じて行われたコールだけを動作させる方法を教えてください。 –

+0

nodeJSアプリケーションをインターネット上で開いていて、モバイルアプリケーション経由でのみアクセスしたいと思っていますか? – itsundefined

答えて

-2

あなたは、このNPMパッケージ...

使用をユーザーエージェントフィールドを使用することができます。https://www.npmjs.com/package/mobile-detect

var MobileDetect = require('mobile-detect'), 
md = new MobileDetect(req.headers['user-agent']); 

、その後、例えば結果を取得しますより安全なシステムを実装する

1

できません。不可能だよ。

APIをインターネット経由でアクセスする必要がある場合は、インターネット経由でAPIにアクセスする必要があります。

アプリケーションから来ているように見せるようにするのは簡単です。キーを使用してリクエストに署名し、そのたびにリクエストのシリアルを増やしてリプレイ攻撃を防止することが、最良の保護方法です。しかし、これにはアプリケーションにキーを入れる必要があります。これは、アプリケーションをハッキングすることで取得できます。キーがわかれば、任意のAPIリクエストを可能にします。

0

認証のない公開エンドポイントはすべて公開されています。自分のアプリだけに限定することはできません。誰でもあなたのアプリからネットワークトラフィックを見て、あなたのアプリの外からそれを複製することができます。

サーバーの使用を「管理する」(防止しない)ためのスキームがいくつかあります。ここでは最も一般的なものがあります。

  1. アプリのすべてのユーザーにアカウントを作成する(またはGoogleやFacebookなどの共通ログインにピギーバックする)ように要求します。
  2. アカウントに基づいてサーバーの使用状況を追跡します。
  3. 1つのアカウントによるサーバーの過負荷から保護し、不正使用を検出するために、アカウントごとに制限を実施します。
  4. あなたのアプリの予想されるプロファイルに合わないサーバーが過度に使用されたり珍しく使用されたりする場合は、アカウントを一時的にまたは永久に禁止することができます。
  5. 複数のアカウントを作成することができます(許可されていないユーザーは、禁止された後も新しいアカウントの作成を続けることはできません)。これは、自動アカウント作成を防ぐためのキャプチャや確認済みの電子メールアドレスなどの単純なものでも、クレジットカードを承認してその特定のクレジットカードにアカウントをリンクするものでもかまいません。その間には幅広いツールがあります。

セキュリティ資格情報(パスワード、証明書など)をあなたのアプリケーションに埋め込むスキームもありますが(SSLのカバーの下にあるかもしれませんが)、あなたのサーバーにアクセスするために使用する必要がありますが、リバースエンジニアリングされ、決定された泥棒の前にとどまるのは難しいです。一般的には、すべての人を忘れさせるのではなく、誤った行動を検出して管理する方が良いと思います。許可されていないユーザーがサーバーにアクセスしているかもしれないという事実は、あまり使用しない限り、おそらく何かを傷つけることはありません。だから、Everyoineを保持しようとするのではなく、誰かが(あまりにも多くの場合、あなたの通常のアプリケーションの使用によって)使用されていることを検出し、さらにその使用を停止する。

関連する問題