0

私のウェブサイトは成長し始めていますが、それに伴ってユーザーがサインアップし続け、スパム メッセージを他のメンバーに送信しています。現在、Google の captcha API サービスを使用していますが、ユーザーが手動でアカウントを作成した場合、それは役に立ちません。私の主な問題は、ユーザーが偽のアカウントを作成した後、重複したメッセージを送信し始めることです。そのため、PHP コードでメッセージの類似性を確認し、送信された x 量の後にそれらを拒否することを考えていますが、これがどれだけの負荷になるかはわかりませんサーバーに置きます。彼らがサインアップしたときにIPを取得し、スパム行為を開始した場合にそのIPを禁止する方法はありますか. スパムのクリーンアップと無効なユーザーの削除に 1 日ほぼ 1 時間費やしているため、気が狂いそうになります。他の人がこれに遭遇しましたか? また、どのような対策を講じましたか?

4

3 に答える 3

6

さまざまな解決策がありますが、どれも完全には機能しません。解決策を組み合わせて使用​​するのが最善です。

いくつかの解決策:

  • メッセージ送信の時間制限を強制する (30 秒または 60 秒ごとに 1 メッセージ)
  • PHP 関数similar_textを使用して、最後に送信されたメッセージに対して新しいメッセージをチェックし、類似度が設定されたパーセンテージを超えている場合はメッセージの送信を拒否します (70% を超えると思います)。
  • ユーザーが設定された時間内に大量のメッセージを送信する場合は、CAPTCHA を使用します
  • ユーザー データベースに IP アドレスのリスト ($_SERVER['REMOTE_ADDR'] はユーザーが持っている IP を示します) を保持し、禁止リストを保持します。これを使用して、ユーザーが登録するときにチェックし、アカウントを作成できないようにします。
  • スパムを通知するレポート ボタンをユーザーに提供する
  • 頻繁に報告されたユーザーを自動的に一時禁止する
  • また、ユーザーのメールアドレスに基づいて禁止リストを保持します (スパマーが新しいメールアドレスを作成するのにより多くの時間がかかります (メールアドレスが乗っ取られる可能性があるため、確認済みのメールアドレスでのみこれを行います)

これらは利用可能なオプションの一部にすぎません。スパマーの生活をできるだけ困難なものにするようにしてください。

于 2011-08-01T16:45:10.823 に答える
1

ユーザーの IP を取得するには

$_SERVER['REMOTE_ADDR'];

私がこれまでに行ってきた 1 つのステップは、StopForumSpam の APIを利用して、スパマー データベースで IP または電子メールが見つかった場合にユーザーを自動的にブロックすることです。キャプチャよりもはるかにスマートです。

スパムの被害に遭っている場合は、同様の解決策を検討することをお勧めします。

于 2011-08-01T16:42:05.127 に答える
1

WAFを開発するために使用した唯一の方法は、トラフィックを分析することでした。

  • HTTP ヘッダー
  • リクエスト URL、メソッド、プロトコル
  • 投稿データ
  • パラメータを取得する
  • クッキー

長い年月をかけて出来上がったナイフは切れ味抜群です。Linux ファイアウォールに接続する必要があります。私はFail2banを使っています。

于 2018-04-18T16:38:03.753 に答える