妹認証 WordPressプラグインをつくってみた
Tool, plugin, wordpress, コミット 8月 3rd, 2008
昨日、妹認証というモノを見つけました。
妹認証 – 妹がBOTからプログラムを守る
なんと、いままで味気なかったCAPTCHA認証が萌える!
というすばらしいモノです。
一気にテンションが上がり、ここで使いたい!
その一心で慣れないPHPをつかいWordPressプラグイン開発をやってみました。
テストは最新の2.6でしか行っていません。他のバージョンでは動くかわからないです。
もとい、2.6でも怖い状態です。
先にモノを置いておきます。インストール方法は中に書いています。
0.35.alpha版に対応しました!
0.35.alpha.mochi.1.bandle.reiya.zip(最終更新2009/1/3)
もちろんライセンスはMITライセンスです。
WordPressのプラグインはGPLライセンスで公開しないといけないそうなので、GPLライセンスで公開します。
GPLライセンス http://www.gnu.org/licenses/gpl.html
あと、元々の妹認証の使い方を知っておいてください。その説明はしていないので。
注意書き(GPLライセンスに入ってるかもしれないですが、それプラス。)
本プラグインを利用する過程および使用したことによるコンピュータの故障、その他あらゆる損害・損失(商業的損害・損失を含む)などを含め一切責任を負いません。また、下に載せている現時点での動作が気に入らない場合は改善を待ってから使用してください。
また、勝手に内容が変更になる可能性があります。大きく機能が変化したときはバージョンを変えて出したいと思います。
以下、プラグイン化における不具合、実際動かして嫌な点。
- プラグインインストール以外に編集するファイルがある:テーマごとに仕様が変わるから仕方がない?
- 認証に失敗したらいちいちブラウザの戻るで戻らなければならない(Ajaxでできればいいけど、めんどくさい。特に認証検証後のメッセージの渡しらへん)。
とまじめな話はここまで。裏話は別記事にしたいと思います。
ちなみにここの妹認証のフォントはうずらフォントを使っています。
#変更情報
色々編集しましたw。思い出せない。
2008 8/4 注意点を追加しました。
2008 8/5 Wordpress→WordPressにしました。
2008 8/10 ライセンス部分をMITからGPLにしました。
#プラグイン変更情報
2008 8/4 readme.txtを編集しました。
2008 8/5 plugin.phpのPlugin URIを修正しました。
2008 8/6 plugin.phpの仕様を変更しました。バージョンmochi.1になりました。
2008 8/10 本家の0.35.alpha公開に合わせて、こちらも0.35.alpha.mochi.0版公開にしました。
2009 1/3 いままで気付かなかったのですが.htaccessが間違っていたので修正しました。



8月 3rd, 2008 at 23:24:29
自分で記念コメント。
いまのところレパートリーが一つなのがイタイw
とりあえず謝ればOKです。
8月 3rd, 2008 at 23:42:16
どうも、早速実装ありがとうございます。
公式Wordpressプラグイン公開前に公開しちゃうとか、素敵過ぎます。
8月 3rd, 2008 at 23:45:22
ああああ!
コメントありがとうございます!
これから報告のメールでも書こうかなと、文章を考えていたところです。
先に発見してもらえるとは思っていなかったので驚きました!
8月 3rd, 2008 at 23:59:55
早速試してみる
8月 4th, 2008 at 1:29:36
うーん。妹認証失敗しても承認待ちコメントになりますね…。
これはまずい。
8月 4th, 2008 at 16:49:39
test
8月 5th, 2008 at 3:31:09
なかなか興味深いプラグインですね。
ただ、WordPress プラグインの実装方法としていくつか気になった点がありました。
1. plugins.php が mode=img.png の有無で動作を変えていますが、img.png 表示機能は別 php ファイルに分離した方が無難だと思います。
2. 直に plugins.php?mode=img.png とされても画像を返してしまうので、何か対策があった方がよさそうです。コメントフォームにアクセスされたら鍵をセッションに入れて、その鍵がないと画像を出さないようにする etc がよいでしょうか。
3. 妹認証が失敗したらリダイレクトさせるのであれば、preprocess_comment フィルターを使った方がよさそうです。
4. 認証失敗時の wp_redirect() の直後を break(); にすれば、承認待ちで保存されることはなくなるかと思います (試してないので想像)。むしろ、他のコメントエラー同様 wp_die の方がいいかもしれません。
5. words.txt が全世界からアクセス可能なので、内容がモロバレになってしまいます。プラグインを有効にした時点で wp_options テーブルに auth_sister_words 項目を作って、そこに質問を入れるようにするなどの方法を取った方がいいと思います。そうなると、質問の変更のためには、管理パネルを作らなくてはなりませんが
8月 5th, 2008 at 3:33:31
なかなか興味深いプラグインですね。
ただ、WordPress プラグインの実装方法としていくつか気になった点がありました。
1. plugins.php が mode=img.png の有無で動作を変えていますが、img.png 表示機能は別 php ファイルに分離した方が無難だと思います。
2. 直に plugins.php?mode=img.png とされても画像を返してしまうので、何か対策があった方がよさそうです。コメントフォームにアクセスされたら鍵をセッションに入れて、その鍵がないと画像を出さないようにする etc がよいでしょうか。
3. 妹認証が失敗したらリダイレクトさせるのであれば、preprocess_comment フィルターを使った方がよさそうです。
4. 認証失敗時の wp_redirect() の直後を break(); にすれば、承認待ちで保存されることはなくなるかと思います (試してないので想像)。むしろ、他のコメントエラー同様 wp_die の方がいいかもしれません。
5. words.txt が全世界からアクセス可能なので、内容がモロバレになってしまいます。プラグインを有効にした時点で wp_options テーブルに auth_sister_words 項目を作って、そこに質問を入れるようにするなどの方法を取った方がいいと思います。そうなると、質問の変更のためには、管理パネルを作らなくてはなりませんが
6. プラグイン説明の Plugin URI は、説明ページの URI を入れるのが普通です。アーカイブファイルの URI ではありません。
8月 5th, 2008 at 9:50:36
>yurikoさん
大変貴重なコメントありがとうございます!
WordPressプラグイン作成は初めてで、なかなか難しかったです。
>1,2
どうしようか迷ったのですが、とりあえず動いてから考えようと思い、そのままにしていました…。次回には適応したいと思います!
>3
フィルターを色々調べたのですが、どれが良いのかなかなかよくわからなかったので助かります!試してみます!
>4
最初wp_dieを使って表示していたのですが、画面変わるのもめんどくさいカナと思い、リダイレクトを使ってしまいました。break();試してみます!しかし、ここの挙動はまだちょっといまいちかなとも思っているので、また良い動作が思いつけば変えていきたいと思います。Ajaxでできれば良いのかもしれないです。
>5
.htaccessでアクセス拒否してあったので、大丈夫かな?と思ってそのままにしてました…。たしかに直ファイルは危ないですよね…
管理パネル…、実は最初作ろうと思ったのですが、ややこしかったので、断念していました。管理パネルがあれば、設定も楽で良いですよね-。検討します!
>6
なるほど!よくわからず書いていました…。これはすぐに修正します!
8月 10th, 2008 at 14:10:24
Ver.0.35αが出ました。
CSRF対策強化等をしているので是非アップデートお願いします。
(そしていろいろ仕様変更したりしてます)
8月 10th, 2008 at 14:11:32
Ver.0.35αが出ました。
CSRF対策強化等をしているので是非アップデートお願いします。
(そしていろいろ仕様変更したりしてます)
3
8月 10th, 2008 at 17:46:12
> 菅礼紗さん
ご報告ありがとうございます!
早速作成中で、移植は完了しました。
ついでなので、プラグインの機能をいじってから公開しようかなと思います。
うまくいかなかったらそのままアップになりますが…