このサイトにもspamやってきた
うちのサイトなんて閲覧者数も少ないし、殆どのページに編集制限を付けているから狙われる可能性は低いと高を括っていました。
しかし敵はボット、サイト内容なんて関係無い、ネット上にページが存在すれば何処だろうと悪害を撒き散らす。
((((( ;゚Д゚)))))ガクガクブルブル
攻撃を受けたのははbbsページ。このページのプラグインはPukiWikiとは別の機構で保存処理を行うためPukiWikiのspam対策から外れています。一応多重書込みに対してはブロックを行いますが、ランダム変化のユーザアドレスと書込みの前にはあまり効果がなかった様です。一度攻撃が可能と判断されるとbot側に記録されている恐れもあるので、早急に対策を取る事にしました。
当初PukiWikiのspam対策を利用する事を考えていたのですが、私に理解できるはずも無く移植は難しい。絵文字を使ったパス認証を付けてみようか思案していたのですが、よくよく考えてみるとWikiページではなくbbs用の書換え不可を前提としたメッセージ投稿ページなのです。POSTされる内容は必ず言語、英語で書き込まれても困るので、日本語それ以外はミス投稿と判断して良いわけです。つまりWikiページだと修正や追加に記号や半角英数字だけの投稿がありますが、bbsならそれらの書込みを禁止する事でspam対策になるのではという作戦です。
以前、日本語抽出の正規表現をどこかのサイトで見た覚えがあるので、早速探してみると
mb_ereg()じゃない、preg_match_all()に/uをつけるんだ!
これは使えそうだと少し変更して利用してみる事にしました。
if (! preg_match('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+/u', $com) ) return 'spam対策で日本語が使われていない書込みを受付ません!!';
なんだかシンプルな対策ですが、効果があるかはまだこれからの状況次第です。