imgタグを使ってCGIを起動する

CGIを起動させる方法として、ちょっと抜け道のような方法があります。

それは、imgタグを使ってCGIを呼び出す方法です。

imgタグというのは、画像を表示させるために使います。例えば、次のような感じですね。

<img src="abcd.jpg" />


ここでは、普通に画像ファイルを呼び出していますが、実は、ここで、次のようにして、CGIファイルを呼び出すことができるのです。

<img src="abcd.cgi" />

一部のアクセスカウンタやログ解析プログラムは、このような形でcgiプログラムを呼び出します。


例えば、前回紹介した、某会社の無料アクセス解析用のHTMLファイルです。

<SCRIPT LANGUAGE="JAVASCRIPT"><!--
var ID="XXXXXXXXX";
var AD=0;
var FRAME=0;
// --></SCRIPT>
<SCRIPT LANGUAGE="JAVASCRIPT"
SRC="http://j1.ax.xrea.com/l.j?id=XXXXXXXXX"></SCRIPT>
<NOSCRIPT>
<A HREF="http://w1.ax.xrea.com/c.f?id=XXXXXXXXX" TARGET="_blank">
<IMG SRC="http://w1.ax.xrea.com/l.f?id=XXXXXXXXX&url=X" BORDER="0">
</A></NOSCRIPT>

ここで、下から2行目の部分を見てみましょう。大きさ0の画像を表示していますよね?

(想像ですが)この部分でCGIプログラムを呼び出しているのだと思います。


このHTMLファイルの場合、JavaScriptが実行できればJavaScript経由でCGIが呼び出されるのですが、JavaScriptが使えないケースでもimgタグを通して、CGIを起動していると考えられます。


imgタグを使ってCGIを呼び出す方法のメリットとしては、下記の点があります。

  • 設置が簡単
  • CGIを必ずしも、自分のサーバに設置する必要がない

一方で、imgタグを使ってCGIを呼び出すデメリットとしては、下記の点があります。

  • 画像を読み込まない設定にしているブラウザからだとCGIが呼び出されない
  • HTMLソースを見れば、CGIを呼び出していることがわかってしまう
  • imgタグを使うだけでは、Referer(どのページのリンクからたどってきたか)のデータが取れない→とくに、アクセス解析では、この弱点は致命傷になります。

imgタグを使って、CGIを呼び出すというのは、あまり自然ではないので、個人的には、避けたほうが無難だと思います。

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。