質問: パワーユーザーが私のajax関数を呼び出さないようにするにはどうすればよいですか? ajax呼び出しを使用して多くの機能を実行するサイトがあります。彼らはスクリプトへのwebbrowserコールバックを持っています-ajax.php。投稿データを使用してデータを送信し、ajaxスクリプトが呼び出すことができるコマンドを制限しますが、ユーザーがサイトを操作しようとするためにajax呼び出しをスプーフィングすることを妨げるものは本当にありません。ユーザーが通話をスプーフィングするのを防ぐ包括的な方法はありますか? ajax呼び出しが他のスクリプトやサイトからではなく、実際に自分のwebサイトから送信されるようにする方法はありますか?または、phpスクリプトで境界条件を確認し、ユーザーが許可されていないことをスプーフィングするのを防ぎ、許可された場所でスプーフィングすることを許可する必要があります。
回答: ソリューションの主要な部分は、 レート制限 特定のユーザーフィンガープリントからのトラフィックになると思います。たぶん、ipアドレスのハッシュ、ユーザーエージェント文字列、送信されているデータ。また、ajaxを呼び出すページをajaxが返すデータに密接にバインドすることも役立ちます。そのため、問題のページでは、ページの読み込み時にxセッションに適したセッションキーを送信します。各ajaxリクエストに対してjavascriptはそのキーを戻す必要があります。そうしないと、ajaxは失敗を返します。ページがx+1 ajaxコールにヒットしたら、ユーザーに新しいセッションを送信する前に、何らかのアクション(おそらくcaptchaか、uaに応じてmousemoveまたはtapイベントのようなもの)を強制しますワイヤーをキーダウンし(元のajaxの帯域外)、プロセスを再起動します。私が考えているように、おそらくあなたの問題の一部は送信されたパラメータの緩い検証である可能性があります。送信されたパラメーターを使用して有効なデータを取り戻すことができる場合は、その作業を難しくします。その方法は、クライアントが送信する値の種類と、悪い値を送信することで悪役がどのような悪戯をするかによって異なります。