« | »

2008年7月8日

人に優しくスパムに厳しく

コメント欄にあったcaptchaが激しく読みにくくてコメントが投稿できないという人が結構多かったので、captchaの入力なしで投稿できるようにした。
とは言っても、ただデフォルト状態に戻してなんでも受け入れるようにするコメントスパムの餌食になるだけなので、ネットをさまよって情報を集め、人間には優しいけどスパマーには厳しいような仕様にしてみた。
コメントいただける人には負担が無く、それでいてある程度のセキュリティーは保つというコンセプトである。ついでなのでコメントだけでなくトラックバックのCaptchaも廃止。
対策としては
1.コメント/トラックバックスクリプトのリネーム
2.コメント/トラックバックスクリプトへのGETメソッドの拒否
3.コメントフォームにhiddenなコードを埋め込んで追加時に送信して照合される機能を実装したSbcodeプラグインの導入
4.コメントはエントリーページから一旦確認ボタンを押した後にしか投稿できないように。
5.静的ページに見えるようなトラックバックURL
の5つであるけど、さすがにこれだけやると今のところスパムは一件も来ていない。
それにコメントとトラックバックのスクリプト自体を叩かれる事が無くなったのでネットワーク的にも負荷が減って良い感じである。
ということで、トラックバックとコメントをじゃんじゃんお待ちしております。
以下MovableType3.32-jaでの設定を書いてみる。


1.コメント/トラックバックスクリプトのリネーム
適当な拡張子の適当なファイル名に変更した後、
.htaccess なりhttpd.confで
AddType application/x-httpd-cgi .拡張子
としてリネームしたスクリプトをCGIとして動作させる。
さらに、
mt-config.cgi に

TrackbackScript スクリプト名.拡張子
CommentScript スクリプト名.拡張子

とMovableTypeにスクリプト名を教えてやる。
2.コメント/トラックバックスクリプトへのGETメソッドの拒否
これも.htaccess なりhttpd.confで

<Files ~ "\.拡張子$">
 <Limit GET>
  Order Deny,Allow
  Deny from All
 </limit>
</Files>

とする。
3.コメントフォームにhiddenなコードを埋め込んで追加時に送信して照合される機能を実装したSbcodeプラグインの導入
http://www.antimon2.atnifty.com/2007/02/sbcode.htmlのとおりに設置
4.コメントはエントリーページから一旦確認ボタンを押した後にしか投稿できないように。
個別エントリーアーカイブのコメント欄から「投稿ボタン」を消す。
5.静的ページに見えるようなトラックバックURL
ラックバックURL以降に何を書いてもちゃんと動作するということから
個別エントリーアーカイブの<$MTEntryTrackbackLink$>/<$MTEntryBasename$>.phpなどと追加して、それらしいURLにする。
参考サイト :
シンプル コメントスパム フィルター - SbCode プラグイン@ あんちもん2.Lab
スパマーにCGI叩かれたら負けかなと思っている。@Junnama Online (Mirror)

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>