作者: ねこ丸
日時: 2007/9/21(11:22)
  ねこ丸です。

閑舎 writes:

> > <?php
> >   include("./phpinfo.gif");
> > ?>
> > 
> > と書くと phpinfo.gif の中身はPHPコードとして実行されるそうです。
> 
> 情報、ありがとうございます。PHP には注意すべきことが多々あるようですね。
> それにしても、PHP が解釈する領域に入れた画像のバイナリのどこか一部に
> 
>   <?php ... ?>
> 
> と挿入するだけでそれが実行されてしまうという事態は、十分に起こりうること
> で、正に便利の裏返しですね。「げぇっ、そんなことも許してるの?」という感
> じでした。

  いやでもフツー GIF を include しないですよね?

  ファイルをアップロードさせてそのコンテンツを利用してゴニョゴニョする
のであれば注意が必要ですが、自分の用意したコンテンツをただ出力するだけ
であれば特に問題にはならないと思います。

# フリー素材などにそういういたずらが仕掛けてないとは言い切れませんが

  ただどのようなファイルであろうともそれを PHP が include や require で
読み込んで、中に <?php という文字を見つけてしまったら PHP はそこから
PHP スクリプトとして解釈しようとしちゃうよ、という事実は忘れちゃダメで
すけど。

yohgaki's blog - スクリプトインクルード問題の根本的解決策
http://blog.ohgaki.net/index.php/yohgaki/2007/08/21/a_sa_ma_oa_a_a_ca_sa_ma_la_fa_a_ei_a_ran

  というアイディアもあるので、アップロードさせたファイルを利用する場合
でもそれなりに安全に動かすことは可能そうですが。
  
  いっそスクリプトだけ読み込む include_php とそうでない include とかに
分離して、include_php を使う場合は対象ファイルに <?php を書かなくてい
い、とかにならんかな。その方が断然嬉しいです。個人的には HTML と PHP 
を混在させたファイルを新規に作ることはないので、<?php はほんとにただの
おまじないとしてしか意味がありません。

--
    ねこ丸