自在CAPTCHA
このライブラリは、
著作権フリー(パブリックドメイン)のPHPのWEBアプリケーション組み込み向け画像認証ライブラリです。
このソフトウェアは著作権放棄されており、どなたでも無料で利用することができます。
特徴
認証画像に使用する文字列は、毎回自動で生成され、有効期限を設定できます。(デフォルトでの有効期限は3600秒(1時間)に設定されています。)
さらに、認証画像に使用する文字列を生成するための暗号シードは自動的に乱数から生成され、定期的に再生成されるため、セキュリティが高まります。
なお、認証は大文字小文字を区別せず、アルファベットと数字を用いて行います。
導入方法は、フォームに短いHTMLコード(scriptタグ)を導入し、フォーム受け取りファイルに一つのファイルをincludeするだけです。
また、認証の判定結果は関数の返り値(TRUEまたはFALSE)として得られるため、間違っていた際の挙動はそれぞれの開発者が独自に設定することができます。
動作例
実際の自在CAPTCHAを表示しています。
動作環境
PHP(バージョン5以降)
ダウンロード
Vectorからダウンロード(推奨)
当サイトからダウンロード
使い方
インストール方法
画像認証機能を追加したいフォームのファイルがあるフォルダに、「zizai_captcha」フォルダをコピーしてください。
次に、フォームの中に、以下のコードを挿入します。
<script src="zizai_captcha/captcha.php" type="text/javascript"></script>
<script>zizai_captcha_show();</script><br>
※「zizai_captcha」フォルダを別のフォルダに設置することも可能ですが、その場合は、srcの部分を書き替えてください。
※※フォームのmethodは「POST」にすることを推奨します。
続いて、フォームの送信内容を受け取るPHPファイル(以下、受取りファイルと呼ぶ)に次のコードを挿入します。
include "zizai_captcha/check.php";
※「zizai_captcha」フォルダを別のフォルダに設置した場合は、パスを書き替えてください。
最後に、受取りファイルで以下の関数を使用して認証の判定を行ってください。
zizai_captcha_check()
この関数に引数はなく、認証が正しければTRUE、正しくなければFALSEを返します。
例:
if(zizai_captcha_check()){
print "認証成功!";
}
なお、フォームのmethodにGETを使用した場合は、zizai_captcha_checkに2つの引数を手動で設定する必要があります。
詳細は割愛しますが、基本的には次のように記述します。
zizai_captcha_check($_GET["zizai_captcha_check"],$_GET["zizai_captcha_time"])
拡張
zizai_captchaフォルダ内のconfig.iniを編集することで、このモジュールの挙動を変更することができます。
config.iniには、2つの変数が設定されています。
expire は、画像認証画像の有効期間(秒数)で、デフォルトでは3600秒(1時間)が設定されています。
画像認証画像の生成から、expireで指定した秒数が経過すると、認証用画像は強制的に更新され、古い画像では、入力された文字列が正しくても、zizai_captcha_check()はFALSEを返します。
expireを短く設定するとセキュリティは強化されますが、訪問者が文字を入力する時間が制限されてしまいます。
characters_count は、認証に使用する文字数で、デフォルトでは最大の8が設定されています。
この値を減らすことで、認証に使用する文字数を減らし、利用者の入力の手間を軽減することができます。
ただし、文字数を少なく設定するとセキュリティ性は低下します。
なお、これらの値は、「zizai_captcha」フォルダ内のadmin.phpに用意されているクラスを利用して、PHPスクリプトから参照・書き換えることができます。
例:
include "zizai_captcha/admin.php";
$config = new zizai_captcha_config();
print $config->get_expire();
print $config->get_characters_count();
$config->set_expire(600);
$config->set_characters_count(5);
ご注意
認証の判定は、大文字・小文字、全角・半角を区別しませんが、設置するページのエンコードがUTF-8以外の場合、全角文字が正常に半角に変換されない場合があります。
ライセンス
本ソフトウェアは
無権利創作ライセンスにしたがって著作権放棄されています。