Wicket Extensionで簡単にcaptcha導入


このBlogにもコメントスパムが横行しだしたので、captchaを導入する事にした。

このBlogはWicketで作ってるんだけど、Wicket Extensionには簡単にcaptchaを作れるクラスがある。
その名もCaptchaImageResource。
実装例はWicket Exampleのページにに実際に動いてるアプリケーションとソースが載ってます。
http://wicketstuff.org/wicket13/captcha/

CaptchaImageResourceクラスに画像に表示する文字列を渡してnewして、
Formにaddするだけ。
下記ではimagePassに画像に表示する文字列を入れてます。
 CaptchaImageResource captchaImageResource = new CaptchaImageResource(imagePass);
 add(new Image("captchaImage", captchaImageResource));

HTMLにimgタグを追加。
<img wicket:id="captchaImage" />
後は、submit時にimagePassと入力値を比較して、結果により処理を分ければ完成。
この辺も、Wicket Exampleに載ってるので詳しくはそちらをご覧ください。

WicketのMLで、丁度captchaの話が出てて、
Wicketで作られたブックマークサービスThoofでも導入されているkitten captchaを使えるようにしようって動きもあるみたい。
Thoofのkitten captchaは、画像上の猫をクリックしてヒューマンテストを行うなかなか可愛げのあるcaptcha。

最終的にはコメントに一手間かかるcaptchaは止めて、せっかく自宅サーバー何だから、mod_securityとか勉強して、
そちらで弾きたいとは思ってます。
実現可能かどうかも分かってないけど。

Comment