• ベストアンサー

ランダムな文字列の含まれた画像を表示させたい

wp_の回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

>既存のCAPTCHAを使うとしたら、どれが比較的安全に、スパマーに対応できるものなんでしょうか? 堅牢さで言えばどれも同じだと思いますよ。 結局のところ機械的に(ロジカルに)破るのが難しいだけで、人海戦術・偽装ページからの誘導・アナログな方法でのhackなどに対しては無力です。 また、先に述べた3つのファイルでも完全でなく、いろいろ工夫する必要はあります。 (暗号化とか、セッションIDの刷新とか。 私はすべて使ったことがあるわけではないのでどれがいいというのは分かりませんが、 CAPTCHA Xは見たことがあります。導入もそれほど難しくないです。 >これって、アニジフだからスパマーにとっては解析しづらいかもしれないし、 高橋メソッドと言え・・・っ!!(ざわ アニジフって誰だろうと素で思った。^^; >どう思います? 面白いですね。 日本のサイトでもどこかで見たことある気がします・・・が失念。 画像の生成ロジックがかなり苦心しそうですが。^^; アニメーションgifの生成は確かpeclでないと出来ないので面倒と言えば面倒かもしれません。 画像バイナリを無理やりくっ付けることで実装することも出来ますが。。

daisuke_dm
質問者

お礼

あ・・・アニジフなんて表現って今どきしませんね。すみません^^; >堅牢さで言えばどれも同じだと思いますよ。 >結局のところ機械的に(ロジカルに)破るのが難しいだけで、人海戦術・偽装ページからの誘導・アナログな方法でのhackなどに対しては無力です。 確かにおっしゃるとおりですね。 >暗号化とか、セッションIDの刷新とか。 すみません、これって具体的にはどういうことを意味しているのでしょうか? ●暗号化・・・htmlをJavaScriptで暗号化して、なんじゃこりゃーなhtmlソースにする・・・?って違うかな。でもこれって有効かも。 ●セッションIDの刷新・・・「セッションIDの刷新」という意味はわかるのですが、どういう効果があるのでしょうか? しかし、 #1さんへのお礼に書いたW3Cのページにも書いてあったのですが、 スパマーに対抗しようとすると、それだけ、アクセシビリティが悪くなりますね。というか、「スパマーへの対抗」と「アクセシビリティ」の両立は、どう考えても実質不可能かな。 ↑でアクセシビリティと言ったのは、病気として知覚に問題がある人に対しての配慮だけではないです。たとえば、どこだったかな、マイクロソフト系のサイトで、文字列を読み上げる機能があって、 だけどそれを聴くと、すごいノイズが入っていて、お経を唱えているようなボイスも入っていて、その中で、日本語で、「イチ・・・ヨン・・・サン・・・ロク・・・シチ」と言ってました。 自分は特に知覚に問題があるわけではないですが、わかるまで5回くらい再生しました・・・。 で、アクセシビリティを考慮しなくていいのなら、 >日本のサイトでもどこかで見たことある気がします・・・が失念。 >画像の生成ロジックがかなり苦心しそうですが。^^; これ、アニジフwでなくても、JavaScriptで画像を置き換えていけば、同じことが実現可能ですね。 ありがとうございます。

関連するQ&A

  • phpのGDで画像の特定色だけを他の色に塗りつぶし

    一応環境です centos5.5 apache 2.2.3 php 5.3.3 phpのGDで画像の特定色だけを他の色に塗りつぶすことはできるでしょうか? 例えば、白(R:255 G:255 B:255)の部分だけをすべて他の色に変更する。といったことがしたいのですが、GDでは難しいでしょうか?

    • ベストアンサー
    • PHP
  • 画像ファイルに文字列を合成

    こんばんは。お世話になっております。 ブラウザからアップされた画像ファイルに、文字列を付け加えて保存したいと考えているのですが、GD利用ということで手元にある本やネットで色々調べてはいるものの、黒い画面(画像)が出てくるのみで、「やりたいことに副ってない?」と半信半疑な心境に駆られている状態です。 イメージ的にはよく「SAMPLE」と記載された画像があると思うのですが、この「SAMPLE」自体を透過加工したGIFを事前に揃えておくのか?それとも単なる文字列を画像ファイルに合成?させることで叶うものなのか?さえも手探り状態が続いています。 例えば以下のページにある画像のようなものを描いています。 http://www.photolibrary.jp/img48/7058_149125.html imagemagickを導入すれば・・とまでは、本サイトの同じカテゴリにも紹介がありますが、まず、GDにて文字列を画像ファイルに合成させる場合の簡単なサンプルでもお教えいただければ幸いに思っております。 ※教えて君のような恐縮なのですが・・・手探り状態から抜け出せずにおりまして・・・ご理解願えれば幸いです。

    • 締切済み
    • PHP
  • GDで生成したはずの画像が文字列として表示される!

    PHP初心者です。いろいろ調べたのですが解決策が見つかりません。なんとか解決策を教えてください。よろしくお願いします。 imagejpeg()で画像を生成したつもりなのですが、文字列として下のように表示されてしまいます。 ・・ JFIF ・>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality 棧C $.' ",# (7),01444 '9=82<.342棧C 2! !2222222 画像データがそのまま文字で打ち出されているようです。 こちらの環境は、 ・さくらインターネットの共用サーバー ・php.iniはデフォルトのまま ・文字コードは、euc-jp ソースは以下の通りです。 <?php Header ("Content-type: image/jpeg"); $test = imagecreate(200, 200); $bcolor = imagecolorallocate($test, 0, 0, 0); imagejpeg($test); imagecolordeallocate ($test,$bcolor); imagedestroy($test); ?>

    • ベストアンサー
    • PHP
  • 長さ1の空文字列?

    タイトルの通り、長さ1の空文字列で困っています。 現在、Linux、Apache、MySQL、PHPを使って3階層アプリケーションを作っています。 予めMySQLでテーブルの形を決めておいて、CSVからデータを読み込ませておき、 PHPでSQL文を実行してレコードを取得することで、それらをユーザに表示という感じです。 複数あるカラムのうち、空文字列(CSV上でブランクだったもの)は表示させたくないので、 PHPで「 if(カラム=="")~ 」のように比較することで、空文字列だけ避けるつもりでした。 しかし上手くいかなかったので、strlen()で調べて見たところ、返り値が1でした。 本来は空文字列に対してstrlen()は0或いはfalseの返り値を返しますよね。 is_empty()でも空データ扱いにならず、当然NULLの扱いでもありません。 そのため、実データとの区別が出来ずに困っています。 何故、空文字列のカラムを除外したいかというと、 DB上のユニークなレコードを検索したいからです。 select * from where カラム='データ' and カラム='データ'… という風に。 「カラム=''」としてしまうと検索に引っかからなくなってしまいます。 どうすればよいでしょうか。 以下はそれぞれのバージョンです。 MySQL:5.0.95 PHP:5.1.6 Linux:RHEL5 Apache:2.2.3

    • ベストアンサー
    • PHP
  • PHPのGD系の関数で描画した文字列の下に下線を引きたい

    PHPのGD系の関数で描画した文字列の下に下線を引きたい PHPのGD系の文字列関数がありますよね? (例:日本語が扱えるやつだとImageTTFTextとか) これで文字列の長さに揃えてリンクっぽく見せるために 下線を引きたいのですが、良い手法が思いつきません。 文字数をstrlenでカウントしてフォントのサイズ/2を掛けたら 文字列の長さになるかなーと思って試しましたが、 これだとaとあの文字の横幅が違うようにずれが出ます。 あるフォントである文字列描画関数を使ったときに文字列の横幅が 調べられるような手法があれば、その長さに応じた下線が引けるのですが、 そうした手法はないでしょうか?

    • ベストアンサー
    • PHP
  • 画像処理での文字の処理について

    formのtextareaから文字を受け取り、その文字を画像に書き込むプログラムを作成しています。 処理手順は、 1.[a.php]にあるtextareaに文字を入力   <textarea name="intxt" rows="10" cols="30"></textarea> (FORMのmethodはPOST)    2.submitで値を送信し、[b.php]で処理   [a.php]:print "<img border='0' src='b.php?imgfile=$imgfile&txt=$txt'>";      [b.php]:$imgfile=$_GET['imgfile'];/*画像*/        $txt=$_GET['txt'];    /*入力文字*/        文字を画像に書き込むときに、  aaa  bbb という風に画像に書き込みたいのですが、処理をすると  aaabbb  となります。 そこで私が考えた方法は、改行コードで文字列を切り取り、【 $text=explode("\n",$txt); 】 for文で書き込むという方法でしているのですが、うまく文字列を切り取れません。 改行コードが間違っているのでしょうか? それとも、改行コードでは切り取れないのでしょうか? 検索をかけてみたり、他の質問を見てみたのですが、うまく出来ませんでした。 それと、日本語で文字列を渡すためにはどのような関数を使えばよいのでしょうか? マルチバイト文字列はrawurlencode()を噛まさねば渡すことが出来ないというのはわかったのですが、 どういう風に噛ませるのかわかりません。 いろいろと試したのですが、表示されませんでした。 他にも方法があるのでしょうか? 開発環境は、PHP5.2.5、Apache2.2、WindowsXPです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PostgreSQLのラージオブジェクトを使って画像を表示したい

    現在、PostgreSQL+PHPで画像管理DBを作成しています。 開発環境は、 Solaris8 Apache1.3.12 PostgreSQL7.1.3 PHP-4.1.0 で行っています。 今、PostgreSQLのラージオブジェクトを使用して画像(JPEG)のDBへの登録及び画面に表示するところを作っているのですが、PHPのスクリプトを作成してWeb上から動作確認を行ったところ、画面に以下の文字が表示されました。 =====表示される文字列===== ・・JFIF,,・厥hotoshop 3.08BIM,, ・'File written by Adobe 屯胖7GWgwt6Х牌范 : ========================= 多分、画像(JPEG)のバイナリがそのまま出力されていると思われます。 これは、PHPの問題なのでしょうかそれとも、DBへの登録が失敗したのでしょうか? 教えていただけないでしょうか?また、 PHP4.1.0+PostgreSQL7.1.3の環境で画像管理DBのなにかサンプルがあれば教えてください。

    • 締切済み
    • PHP
  • 文字列の置換について

    こんにちは、kanpoと申します。 今回文字列の置換についての質問をさせていただきたいと思います。 やりたいことは以下のとおりです。 たとえば、あるStringデータに”あかさた#1728なはま#7586やらわ”などという 文字列が入ってるとします。 この文字列のなかから"#1728"と"#7586"を検索しそれぞれを #1728 → test #7586 → test2 と変換し最終的にもとのStringデータを ”あかさたtestなはまtest2やらわ”としたいのです。 説明が長くなってしまい申し訳ありませんがよろしくご教授ください。 環境は下記のとおりです。 RedhatLinux6.2J apache-1.3.12-0jp1.i386 php-3.0.15_i18n_ja-0vl2.i386

    • ベストアンサー
    • PHP
  • マルチバイト文字を画像に書き込みたい

    いつもお世話になっています。 画像に文字を書き込むプログラムを作成中なのですが、 日本語を書き込もうとすると文字化けを起こしてしまいます。 文字は、EUC-JPで処理するようにしています。 【index.php】にHTMLでフォームから値(文字列やフォントなど)をとり、 【a.php】で画像に文字を書き込む処理をし、 【index.php】で作成した画像を表示させるプログラムです。 マルチバイト文字を送信する際に、 $text=rawurlencode($text);  【index.php】 をし、【a.php】では、   $text=$_GET['text'];   $text=rawurldecode($text); をして、   imagettftext($im, $fontsize, 0, 12, $fontsize+8, $color, $font, $text); 書き込みを行っています。 マルチバイト文字を送信する際にこの方法が出来ない場合、他に方法があるのでしょうか?? 開発環境は、Windows XP、PHP5.2.5,Apache2.2です。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • POST文字列が化ける(外字)

    以下の環境で、システムを開発しています。 OS = Windows2000 SP4 Apache = 2.0.58 PHP = PHP 5.1.6 magic_quotes_gpc = Off mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; このような設定で、コードはSJISで書いています。 外字エディタで外字が登録してあります。 この外字をフォームから、POSTで受取たいと思っています。 さきほども似たような内容で質問しました。 その後、いくつか分かったことがあるので、質問しなおします。 POSTする文字列が、 ・外字一文字の場合 ・先頭が外字の場合 は、化けないことが分かりました。 つまり、なんらかの文字列の間に文字列が入ると化けるのです。(化けないこともあります。)たぶん周りの文字を巻き込んでしまうのだと思います。 何か解決方法に心あたりないでしょうか?

    • 締切済み
    • PHP