CAPTCHAによる画像認証は、既に破られています。
今時デジカメで表情判別が出来るくらいですから、文字の解読も比較的容易なのです。
判別されないよう画像を歪めすぎると、今度は人間にすら読めなくなりますし。
というわけで単純に表示するだけではなく別のロジックを導入してみましょう。
例えばPearにはText_CAPTCHA_Numeralというパッケージがあります。
これは「21+32」みたいな文字列を作成し、その答えを入力させることで認証させるというものですが、……そんなん自力で作ったほうが早いですから!
<?php #初期設定 session_start(); #表示文字列を決定 $phrase[0]=rand(10,99); $phrase[1]='+'; $phrase[2]=rand(10,99); $_SESSION['phrase']=$phrase[0]+$phrase[2]; $phrase=$phrase[0].$phrase[1].$phrase[2]; var_dump($_SESSION,$phrase); |
たったこれだけのものをPear化ってそれ需要あるんかい。
せっかくなので前回のText_CAPTCHAに同じことをさせてみましょう。
captcha.php
<?php #表示 |
見てのとおり、$options['phrase']に表示させたい値を突っ込んだだけです。
表示は「35+84」のような文字列となり、$_SESSION['phrase']の値は119みたいな数値となります。
Text_CAPTCHA_Numeralとか入れるよりよっぽど簡単ではないでしょうか。