-3

私は ajax -> PHP の単純なチャットを使用しており、ユーザーがあまりにも多くのチャット リクエストを送信したり、メッセージをすばやく送信したりしないようにしたいと考えています。スパムを避けるために、1 人のユーザーが送信できるメッセージの量を制限する良い方法は何ですか。null と空白メッセージの通常のチェックを行いました。常に送信ボタンを押したり、Enter キーを押したりするなど、ユーザーが複数のメッセージを連続して送信できないようにする方法を探しています。このアクションを 5 秒あたり 1 メッセージに制限したい、またはユーザーが 5 秒間にあまりにも多くの質問を送信して、別のメッセージを送信する前に待機期間を強制する場合。

4

3 に答える 3

2

メッセージごとに一定の時間遅延を設定するよりも、1 分あたりのしきい値アプローチの方が優れていると思います。これはより自然に感じるでしょう。

クライアント側の JS に実装されている場合は、サーバー側でもレートをチェックし、レートを超えている場合はエラー コードを返すのが賢明です。誰かが AJAX エンドポイントをリクエストであふれさせて悪用しようとした場合、その悪用シナリオを回避するために何らかの CSRF 戦略を実装することもできます。

于 2013-03-15T22:41:07.453 に答える
1

これを処理する簡単な方法は、新しいチャット メッセージが送信された後にタイマーを開始し、そのタイマーが特定の数値 (5 秒、15 秒、30 秒など) に達するまでチャット メッセージの送信を無効にすることです。「送信」ボタンを無効にしてグレー表示にすることで、これをユーザーに視覚的に示すことができます。

于 2013-03-15T22:29:44.763 に答える
0

時間遅延を実装します。ユーザーは 1 分間に 15 回を超えてチャットに投稿できません。

于 2013-03-15T22:29:32.270 に答える