Anti-Spam by CleanTalk
CAPTCHAを必要とせずに、スパムボットによるユーザー登録、スパムコメント、スパムフォーム送信からDrupalサイトを保護するクラウドベースのアンチスパム保護サービス。
cleantalk
インストール
composer require 'drupal/cleantalk:^9.6'
概要
Anti-Spam by CleanTalkは、Drupalウェブサイト向けの包括的なクラウドベースのスパム保護ソリューションです。従来のCAPTCHAベースのソリューションとは異なり、CleanTalkはユーザー体験を妨げることなく、スパムボットや手動のスパム送信を効果的にブロックする不可視の保護手法を使用します。
このモジュールはCleanTalk SaaSプラットフォームと連携し、フォーム送信やユーザー登録リクエストをクラウドに送信して、JavaScript検証、マウスの動きの追跡、キーボード操作の検出、IPレピュテーションチェックなど複数の検出方法を使用したリアルタイム分析を行います。サービスはミリ秒単位で許可/拒否の判定を返します。
主要な保護機能には、PHP実行前のIP レベルブロックを行うSpamFireWall(SFW)、悪意のあるボットに対するAnti-Crawler保護、悪用を防止するAnti-Floodレート制限、ActiveCampaign、ConvertKit、Pardotなどのサービスからの外部埋め込みフォームのチェックサポートが含まれます。
このモジュールは、保護設定の構成、ユーザーのスパムチェック、ファイアウォールの管理のための包括的な管理インターフェースを提供します。コメントの自動モデレーション、ロールベースの除外、URLパターン除外、広範なデバッグ機能をサポートしています。
Features
- CAPTCHAなしのクラウドベースのスパム検出 - 正規ユーザーには見えない
- ユーザー登録、コメント、コンタクトフォーム、Webform、フォーラムトピック、ノード作成の保護
- SpamFireWall(SFW) - Drupalが完全にロードされる前のHTTPミドルウェア段階でのIPレベルブロック
- User-Agentパターンに基づいて悪意のあるボットをブロックするAnti-Crawler保護
- 悪用を防止するAnti-Floodレート制限(1分あたりのページビュー数を設定可能)
- 疑わしいコメントを手動レビュー用に自動的に非公開にする自動モデレーションモード
- 一括削除機能を備えたバッチユーザースパムチェック
- ActiveCampaign、ConvertKit、Pardot、Convertbox埋め込みフォームの外部フォーム保護
- 検索結果ページ用のオプションのnoindexメタタグ付き検索フォームスパム保護
- マウストラッキング、スクロール検出、キーボード操作を含むJavaScriptベースのボット検出
- Cookieに問題があるサイト向けの代替データベースバックセッションストレージ
- 信頼されたユーザーロールのスパムチェックをスキップするロールベースの除外
- オプションの正規表現サポート付きURLパターン除外
- Varnishおよびページキャッシュとの互換性
- 包括的なデバッグデータ収集およびエクスポート機能
Use Cases
スパムボットからユーザー登録を保護する
「ユーザー登録をチェック」を有効にして、すべての新規ユーザー登録をCleanTalkのスパムデータベースに対して自動的に検証します。スパム登録はアカウントが作成される前にブロックされ、スパムアカウントの蓄積を防ぎます。既存のスパムアカウントについては、「スパムユーザーをチェック」管理ページを使用してすべてのユーザーをバッチスキャンし、特定されたスパマーを一括削除します。
CAPTCHAなしでコメントスパムを阻止する
「コメントをチェック」を有効にしてすべてのコメントフォームを保護します。CAPTCHAとは異なり、CleanTalkは正規ユーザーをイライラさせない不可視の検出方法を使用します。スパム量が多いブログの場合、「自動モデレーション」を有効にして、疑わしいコメントを完全にブロックするのではなくレビュー用に保留することで、誤検知を減らします。
コンタクトフォームとWebformを保護する
Contactモジュールフォームとwebform送信の保護を有効にします。すべてのフォームデータは、送信者のメールレピュテーション、コンテンツ分析、行動シグナルを含むスパムパターンについて分析されます。スパム送信はカスタマイズ可能なエラーメッセージでブロックされます。
SpamFireWallによるIPレベルのブロック
最大限の保護のためにSpamFireWallを有効にします。既知のスパムIPはDrupalが完全にロードされる前のHTTPミドルウェアレベルでブロックされ、サーバーリソースを節約します。ファイアウォールデータベースはCronを通じて自動的に更新されます。サーバーを圧倒しようとする攻撃的なボットをレート制限するためにAnti-Floodを有効にします。
既存のスパムアカウントをクリーンアップする
管理 > 環境設定 > コンテンツ作成 > Antispam by CleanTalk > スパムユーザーをチェック に移動します。「チェックを開始」をクリックして、すべての登録ユーザーをCleanTalkの既知のスパマーデータベースに対してスキャンします。結果を確認し、「選択したユーザーを削除」または「すべてのユーザーを削除」を使用してスパムアカウントを削除します。正当な投稿者を保護するために「記事があるユーザーを除外」を有効にします。
厳格なCookieポリシーを持つサイトを保護する
Cookieの使用を最小限に抑える必要があるサイト(例:GDPR準拠)の場合、Cookie設定で「代替ストレージを使用」を有効にします。これにより、完全なスパム保護を維持しながら、ブラウザCookieの代わりにセッションIDを使用してデータベースにトラッキングデータを保存します。
外部マーケティングフォームを保護する
ActiveCampaign、ConvertKit、Pardotなどのマーケティングプラットフォームからの埋め込みフォームを保護するために「外部フォームをチェック」を有効にします。フォームが動的にロードされる場合は「バッファキャプチャ」を有効にします。CleanTalkはフォーム送信をインターセプトし、検証し、承認された場合にのみ外部サービスに送信します。
Tips
- 登録には「stop_email@example.com」のテストメール、コメント本文には「stop_word」を使用して設定をテストしてください
- 最高の保護のためにSpamFireWallを有効にしてください - Drupalが完全にロードされる前のHTTPレイヤーでスパムをブロックします
- 完全にブロックするのではなく疑わしいコンテンツをレビューしたい場合は、コメントの自動モデレーションを使用してください
- モジュールをインストールする前に登録した可能性のあるスパムアカウントを特定して削除するために、「スパムユーザーをチェック」ページを定期的にチェックしてください
- 高トラフィックサイトでは、SpamFireWallデータベースを最新の状態に保つためにCronが頻繁に実行されるようにしてください
- マウスの動きとキーボード操作を追跡するJavaScriptベースのボット検出のためにBot Detectorを有効にしてください
- 特定のフォームフィールドが誤検知を引き起こしている場合は「フィールド除外」を使用してください
- トラブルシューティングのためにCleanTalkサポートに連絡する際は、設定からデバッグデータをエクスポートしてください
Technical Details
Admin Pages 4
/admin/config/cleantalk
CleanTalkアンチスパムモジュールのメイン管理セクション。設定構成とスパムユーザー管理へのアクセスを提供します。
/admin/config/cleantalk/cleantalk_settings_form
CleanTalkアンチスパム設定のメイン設定フォーム。APIキー、保護オプション、ファイアウォール設定、除外を設定します。
/admin/config/cleantalk/cleantalk_check_users_form
すべての登録ユーザーをCleanTalkのスパムデータベースに対してバッチチェックします。すり抜けた可能性のある、またはモジュールをインストールする前に作成されたスパムユーザーアカウントを特定して削除します。
/admin/config/cleantalk/cleantalk_check_comments_form
コメントのスパムバッチチェック用インターフェース(近日公開予定として表示されている機能)。
権限 1
Hooks 5
hook_page_attachments_alter
CleanTalk JavaScriptライブラリと設定をページにアタッチします。ボット検出、Cookie処理、バッファキャプチャJavaScript変数を設定します。設定されている場合、検索ページにnoindexメタタグを追加します。
hook_form_alter
ユーザー登録、コメント、コンタクトフォーム、フォーラムトピック、Webform、ノードフォームを含む様々なフォームタイプにスパム検証ハンドラーを追加します。また、オプションの「Protected by CleanTalk」ブランディングリンクも追加します。
hook_comment_presave
自動モデレーションモードが有効な場合、スパムとしてフラグ付けされたコメントを非公開にすることでコメントの自動モデレーションを処理します。
hook_uc_order
UberCartモジュールと統合して注文のスパムをチェックします。
hook_theme
スパムユーザーチェックインターフェースをレンダリングするためのcleantalk_check_usersテーマを定義します。
Troubleshooting 6
設定ページでAPIキーが有効でアカウントがアクティブであることを確認します。IPレベルブロック用にSpamFireWallを有効にします。高度なJavaScriptベースの検出用にBot Detectorを有効にします。特定のコンテンツタイプ保護(コメント、登録など)が有効になっていることを確認します。フォームがURLまたはフィールド除外によって除外されていないことを確認します。
設定で「ロール除外」に信頼されたユーザーロールを追加します。チェックすべきでない特定のURLについては、「URL除外」に追加します。特定のフォームフィールドが誤検知を引き起こしている場合は、「フィールド除外」に追加します。正当なパターンをレビューしてホワイトリストに登録するためにCleanTalkサポートに連絡してください。
Drupal Cronが定期的に実行されていることを確認します(推奨:5〜15分ごと)。有効なAPIキーがあることを確認します。SpamFireWallはCleanTalkサーバーからの定期的なデータベース更新が必要です。設定ページで、利用可能な場合は「Cronタスクを実行」ボタンを使用して手動で更新をトリガーします。
「外部フォームをチェック」と「バッファキャプチャ」の両方の設定を有効にします。CleanTalk JavaScriptがページにロードされていることを確認します(ブラウザコンソールを確認)。外部フォームはサポートされているサービス(ActiveCampaign、ConvertKit、Pardot、Convertbox)からのものである必要があります。CleanTalk JavaScriptが初期化された後にフォームがロードされていないことを確認します。
Cookieの代わりにデータベースにトラッキングデータを保存するために「代替ストレージを使用」を有効にします。これは特にVarnishやその他の積極的なページキャッシュで便利です。このオプションが有効な場合、モジュールはデータベースに保存された代替セッションIDを使用します。
モジュールは管理者がログインしたときに自動的に管理者Cookieを設定します。それでもブロックされる場合は、Cookieをクリアして再度ログインしてください。AccountSetSubscriberが実行されていることを確認します(account.setサービスが正しく構成されていることを確認)。
Security Notes 6
- モジュールには有効なCleanTalk APIキーが必要です - すべてのスパムチェックはCleanTalkクラウドサービスを通じて実行されます
- SpamFireWallデータはCronを通じてCleanTalkサーバーから更新されます - Cronが安全に実行されていることを確認してください
- モジュールはトラッキング目的でCookieを設定します - プライバシーポリシーでユーザーに通知してください
- 代替セッションストレージはデータベーステーブルを使用します - 適切なデータベースセキュリティを確保してください
- 管理者認証CookieはAPIキーのMD5ハッシュを使用します - APIキーを安全に保管してください
- モジュールにはデバッグデータエクスポート機能が含まれています - 「CleanTalk設定の変更」権限を使用して設定ページへのアクセスを制限してください