妹認証 WordPressプラグインをつくってみた

plugin, Tool, 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が間違っていたので修正しました。

12 Responses to “妹認証 WordPressプラグインをつくってみた”

  1. モチ君 Says:

    自分で記念コメント。
    いまのところレパートリーが一つなのがイタイw
    とりあえず謝ればOKです。

  2. 菅礼紗 Says:

    どうも、早速実装ありがとうございます。
    公式Wordpressプラグイン公開前に公開しちゃうとか、素敵過ぎます。

  3. モチ君 Says:

    ああああ!
    コメントありがとうございます!
    これから報告のメールでも書こうかなと、文章を考えていたところです。
    先に発見してもらえるとは思っていなかったので驚きました!

  4. Makky Says:

    早速試してみる

  5. モチ君 Says:

    うーん。妹認証失敗しても承認待ちコメントになりますね…。
    これはまずい。

  6. su Says:

    test

  7. yuriko Says:

    なかなか興味深いプラグインですね。
    ただ、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. yuriko Says:

    なかなか興味深いプラグインですね。
    ただ、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 ではありません。

  9. モチ君 Says:

    >yurikoさん
    大変貴重なコメントありがとうございます!
    WordPressプラグイン作成は初めてで、なかなか難しかったです。

    >1,2
    どうしようか迷ったのですが、とりあえず動いてから考えようと思い、そのままにしていました…。次回には適応したいと思います!

    >3
    フィルターを色々調べたのですが、どれが良いのかなかなかよくわからなかったので助かります!試してみます!

    >4
    最初wp_dieを使って表示していたのですが、画面変わるのもめんどくさいカナと思い、リダイレクトを使ってしまいました。break();試してみます!しかし、ここの挙動はまだちょっといまいちかなとも思っているので、また良い動作が思いつけば変えていきたいと思います。Ajaxでできれば良いのかもしれないです。

    >5
    .htaccessでアクセス拒否してあったので、大丈夫かな?と思ってそのままにしてました…。たしかに直ファイルは危ないですよね…
    管理パネル…、実は最初作ろうと思ったのですが、ややこしかったので、断念していました。管理パネルがあれば、設定も楽で良いですよね-。検討します!

    >6
    なるほど!よくわからず書いていました…。これはすぐに修正します!

  10. 菅礼紗 Says:

    Ver.0.35αが出ました。
    CSRF対策強化等をしているので是非アップデートお願いします。
    (そしていろいろ仕様変更したりしてます)

  11. 菅礼紗 Says:

    Ver.0.35αが出ました。
    CSRF対策強化等をしているので是非アップデートお願いします。
    (そしていろいろ仕様変更したりしてます)
    3

  12. モチ君 Says:

    > 菅礼紗さん

    ご報告ありがとうございます!
    早速作成中で、移植は完了しました。
    ついでなので、プラグインの機能をいじってから公開しようかなと思います。
    うまくいかなかったらそのままアップになりますが…

Leave a Reply

認証失敗
妹「来てくれてありがとう!コメントしていってね!!」