Google App Engine で実行される Web アプリケーションを開発しています。データを要求する HTTP GET メソッドがいくつかあります。ランダムな Web リクエストがサーバーからデータを受信できるようにしたくありません。私の Web アプリ (つまり、私の Web サイトから発信された要求) と、私が開発したモバイルまたはデスクトップ クライアントのみが、サーバーからデータを要求できる必要があります。これはどのように行われますか?ここでは、ユーザー名/パスワードの承認について話しているわけではないことに注意してください。リクエストを行っているクライアント アプリが承認されていることを確認する方法を尋ねています。そうしないと、誰でも自分のクライアント (例: C# コンソール アプリ) を作成して、私のデータを使い始めることができます。質問は次のようなものだと思います: How to authentication client application for trust of messages sent from it
3 に答える
クライアント経由でリクエストを暗号化します。サーバーレベルで復号化します。復号化が成功し、要求が整形式である場合、その要求は承認されます。
それ以外の場合は、無許可のクライアントです。
キャッチ?
誰かがあなたの暗号化方法を解決した後、無許可のクライアントを作成できるようになります。これはおそらく、プログラムを逆コンパイルし、難読化されたコードを通り抜けて、より困難で時間がかかるようになった後である可能性がありますが、それでも可能です。
3scale を使用できます。GAE アプリケーションに対して行われたリクエストの承認、統計、制御を提供します。
https://code.google.com/p/appspotimage/wiki/APICreationArticle
簡単に言えば、できません。
長い答えは、ハッカーにとって困難にすることができるということです。通常、これはアプリケーションにキーを埋め込み、それを難読化し、キーを取得するためのコードを難読化することで機能します。これは、誰かが鍵を見つけることを不可能にするわけではなく、単に難しくするだけです.
より強力なコンシューマ システムの 1 つは Microsoft の Silverlight DRM です。その仕組みを調べてみてください: http://www.iis.net/learn/media/iis-media-services/content-protection-in-silverlight