PukiWiki で掲示板(BBS)を作るには #article というプラグインを使うが、この各投稿には最後(または最初)に #comment というプラグイン呼び出しが挿入される。
このcommentミニフォームを使って一行コメントを投稿出来るようになるわけだが、最近このフォームを使ったスパム投稿が頻発しだした。中身は cialis やviagra、valiumなどの所謂オンライン薬局へのリンク広告である。
少し前までは、2、3回この種のスパム投稿をやり過ごせば去って行ってくれたのだが、昨日はしつこくて何度やり過ごしても止まらず、一時的に閉鎖(#articleや#commentを削除)したのだが、再開するとすぐにまた投稿が始まりイタチゴッコが終わらない(-_-;)
そこで仕方ないので重い腰をあげて、認証付きの投稿フォームを探してみた。
幸い、この種のプラグインは複数の人が開発していてすぐに設置することが出来た。
詳しくは→自作プラグイン/pcomment_kcaptcha.inc.php
上記は #comment に対する前処理として実装されているが、#article に対してはこちらの方が改造されているのがあった。
これで大丈夫、、、、と思ったのだが・・・甘かった(-_-;)
スパマーはすでにこの上を行っており、上記の二つのプラグインと汎用CAPTCHAライブラリ「KCAPTCHA」を設置して、#article を #article_kcaptcha に、#comment を #comment_kcaptcha に書き換えてもスパムは止まらないのだ。
まさか画像解析して自動投稿するツールが存在するのか?と思ったが、まさかねぇ。だとすると手動で??
まさかねぇ、投稿頻度からみてもそれはあり得ないだろう。
一応念のため、一部を改造して、画像の文字だけでなく、プラスして特定の文字も入力しなければ通らないようにしてみた。
ところが・・・それでも止まらないのだ(-_-;)
なんなのだ???
・・・そこで考えてみた。そしてハタと思いついたので・・・続きはまたあとで(^^ゞ
まずわかって来たことは、スパマーはページ上のフォームに書き込んで送信しているわけではないという事だ。どうやら、直接 cgi を叩いているらしい。
しかも、ページを解析して cgi へのコマンドを組み立てるのではなく、PukiWiki など著名なシステムのプラグインの場合は、元のコードから cgi コマンドパターンをあらかじめテンプレート化して持っていて、それを元に url だけをページから得ているのだろう。
つまり認証を掛けても、スパマーは認証をチェックするプラグインではなく、元々のプラグイン・・・今の場合であれば comment_kcaptcha ではなく、comment を直接呼び出しているのだ。
そこで対策としては、
1.呼び出し元が自ページ以外であればリジェクトする。
2.comment プラグインをやめる。
のどちらかが簡単かな、と思う。ただ、comment プラグインをざっと見た感じでは、自ページ以外からの呼び出しをリジェクトするよな機能はなさそうだし、考えて追加するのも面倒(w
と言うわけで、とりあえず comment プラグインを止めて、別のものにすることを考えてみた。
と言っても探すのも面倒なので・・・名前だけ変えてしまえば?という安易な方法を試してみる。
...
投稿者 shoda T. :
13:52
|
コメント (2)
|
トラックバック