Web サービスと、この Web サービスを呼び出すクライアント アプリケーションを構築するとします。
私以外のソフトウェアが Web サービスを呼び出すのを防ぐ方法はありますか?
たとえば、1 時間に 1 回しか利用できないアイコンをクリックすることでプレイヤーがいくらかのお金を獲得できるゲームを想像してみてください。ユーザーが接続されている場合は、まあ。ユーザーが接続されていない場合、ユーザーはお金を得るために時間枠を「緩め」ます。
標準的な Web サービス + クライアントでは、10 代の若者が Web サービスを実行するためのスクリプト/偽のアプリを作成するのは非常に簡単です。
どうすればそれを回避できますか? 魔法のような解決策がないことはわかっていますが、少なくとも、そのようなツールの作成を難しくするにはどうすればよいでしょうか?
PS: 私は Microsoft .Net プラットフォーム + SilverLigth を使用していますが、この質問は MS テクノよりも広いと感じています。
[編集]明確にするために、認証を追加する方法は尋ねませんが、ユーザーがWebサービスへの呼び出しを自動化するのを回避する方法を尋ねます。アカウントを持つユーザーがそのアカウントを使用して呼び出しを自動化することを妨げるものは何もありません。私が避けたいのは、たとえば、実際の認証を使用して偽のアプリを作成し、ユーザー入力の代わりに 5 秒ごとに何かを実行することです。ゲームでは、これは農家のロボットを避けることができます