私のサイトは、意味のない電子メールアドレスと「偽の」IPアドレス(それらをブロックする方法はありません)を使用して手動でアカウントを作成するスパマーによる繰り返し攻撃を受けています。
データ比較を使用して、 Rules モジュールでノードの作成をブロックするというアイデアを思いつきましたが、機能しません。ここに私が持っているルールの要約があります:
イベント:コンテンツを保存する前
条件:テキスト比較:パラメータ:テキスト:[node:body:value]、一致するテキスト:lexaproなど[単語/式のリストを作成する方法は? 1行に1つですか?]
アクション:ページリダイレクト
更新: この答え のルールから始めて、ページにリダイレクトしてノードを非公開にするルールを作成しました、ただし、単語がタイトルと本文の両方にある場合のみ。 [〜#〜]または[〜#〜]をルールに入れようとしましたが、うまくいきませんでした。
{ "rules_simple_antispam" :
{
"LABEL" : "Simple antispam",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_presave" : [] },
"IF" : [
{ "text_matches" : { "text" : [ "node:title" ], "match" : "lexapro" } },
{ "text_matches" : { "text" : [ "node:body:value" ], "match" : "lexapro" } }
],
"DO" : [
{ "redirect" : { "url" : "death-spam" } },
{ "node_unpublish" : { "node" : [ "node" ] } }
]
}
}
ルールを機能させるには、何を変更する必要がありますか?
PS:私はコーダーではありません。
IMOでは、次のようなキャプチャを使用する必要があります。
Google reCAPTCHA Webサービスを使用して、CAPTCHAシステムを改善し、電子メールアドレスを保護します。
OR
これを設定する方法の説明ビデオです Drupal 7 Draggable Captcha-スパムを防ぐためのよりフレンドリーな方法
スパムがまだ発生している場合、つまり実際にボットではなく人間である場合は、ポイントシステムを実装できます。ユーザーが何かをしてポイントを獲得する必要がある場合(ログインx日数またはコメントx時間数など)。ノードを作成するには、ユーザーはxポイントを持っている必要があります。
さらに、スパムフラグを実装することもできます。これにより、ユーザーはコンテンツにスパムのフラグを付け、x個のフラグが立てられた場合にコンテンツを自動的に削除させることができます。
このルールを見てください( Rules エクスポート形式):
{ "rules_block_specific_words_in_node_body" : {
"LABEL" : "Block specific words in node body",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_presave" : [] },
"IF" : [
{ "user_has_role" : {
"account" : [ "site:current-user" ],
"roles" : { "value" : { "2" : "2" } }
}
},
{ "OR" : [
{ "text_matches" : { "text" : [ "node:title" ], "match" : "lexapro" } },
{ "text_matches" : { "text" : [ "node:body:value" ], "match" : "lexapro" } },
{ "text_matches" : {
"text" : [ "node:title" ],
"match" : "ANotAllowedTextStringInTitle",
"operation" : "regex"
}
},
{ "text_matches" : {
"text" : [ "node:body:value" ],
"match" : "ANotAllowedTextStringInBody",
"operation" : "regex"
}
}
]
}
],
"DO" : [
{ "redirect" : { "url" : "no_spammers_allowed" } },
{ "node_unpublish" : { "node" : [ "node" ] } }
]
}
}
(Rules UIを使用して)独自のサイトにインポートし、実験して、ニーズに合わせるだけです。
上記のサンプルに含まれるロジックの詳細:
ANotAllowedTextStringInTitle
または(本文内)ANotAllowedTextStringInBody
に関連する正規表現(regex)を使用します(ニーズに合う正規表現を使用します)。no_spammers_allowed
のようなパスを持つページにリダイレクトを発行します。注:単語のリストを作成する最も簡単な方法は、RegEx式を使用することです(この場合、「lexapro 「もちろん、最初の2つのルール条件は廃止されます。」.