[記事をツリー上に表示] [記事を時間順に表示] [コメントを投稿]
【記事番号:291】 迷信5.cgi-bin以下へJPEG画像ファイルを配置すると、危険である

- -


投稿日時: 03/11/06 09:16:52

2chでApacheのチューニング情報を探しているときに、また迷信を発見してしまいました・・

「たとえば、imgboard.cgi はアップロードされたファイルを cgi-bin の下に置いてしまうので、
危険な CGI を .jpg という拡張子でアップロードした後、このファイルに
アクセスするとその危険な CGI が実行されてしまう(たぶん)。」

うーん、これは違います。このケースはありません。
迷信を撒いてますね。困ったものです

HTTPサーバの仕組みでは、拡張子から処理やマイムタイプが決定され、その後、サーバからブラウザへコンテントタイプ宣言の後にデータが行くので、サーバもブラウザもそのマイムタイプを信じてデータを適宜処理します。

仮に、危険なCGIを.jpgという拡張子で置いても、HTTPサーバはそれをCGIとして実行処理せず、image/jpegのマイムタイプをつけて、バイナリデータをサーバからブラウザに転送する(この場合スクリプト本体、つまりテキストデータが送信される)という処理になるので、サーバ上でCGIスクリプトとして実行されることはありません。

なお、「cgi-bin以下にはcgiしか置けないようになっており、拡張子と関係なくすべてcgiとして実行させる設定」のプロバイダや自宅サーバが時々ありますが、その場合は、この方が言われるように.jpgという拡張子でもCGIとして実行されることになりますが、その設定の場合は、どちらにしろ、cgi-bin以下の画像ファイルはすべてCGIとして実行されエラーになってしまうわけですから、cgi-bin以下に画像フォルダを設置して掲示板運営を行っていること自体、あり得ません。ユーザは新FAQなどを見て、「cgi-bin以下に画像を置けないプロバイダの場合」の方の設定をしているはずです。つまり、ここで書かれているようなケースは、存在せず、まったくの杞憂だといえるでしょう。



ただ、誤解して欲しくないので書きますが、自分でいろいろわかっている中ー上級者へ向けてのアドバイスとしては、パス設定が複雑になりますが、やはり、cgiはcgi-binにだけ置いて、データはデータフォルダへ置くのがセキュリティの見地から良いと思います。危険な拡張子は掲示板側で厳しく制限してありますが、絶対の安全はありません。できれば、画像保存フォルダでは、.htaccessによりCGIやSSIの実行を明示的にできなくしておくのが良いと思います(eFTPboardには標準添付)。shellも開放されているケースは、umaskもいじって置くといいでしょう。


なお、初心者の方やISPのプロバイダなどを借りられている方は、万人向け(初心者向け)におすすめしているシンプルな方の設定でやってください。厳密に言うとセキュリティ的には甘くなりますが、その手のプロバイダはプロバイダ側の責任でそれなりに安全対策がなされていますので、実用上問題ないと思います。長くやっていますが、パーミッションの設定を指示通りきちんとしていれば、アップされたデータでトラブルに遭った例はimgboardに関しては、今まで聞いた事がありません。


関連記事
No. 268 新スレッド、「imgboardの迷信を解く」
No. 269 迷信1.IPアドレスが変わるとユーザによる記事削除機能ができない
No. 270 迷信2.imgboardは表示が遅い?
No. 279 迷信3.imgboardにはPerl版とPHP版がある
No. 282 迷信4.imgboardはアップローダである
No. 291 迷信5.cgi-bin以下へJPEG画像ファイルを配置すると、危険である <---

コメントを投稿

名前(必ず記入してください):

PASS(必ず記入してください)janis:

メールアドレス(省略可):

URL(省略可):

件名(必ず記入して下さい):

記事(必ず記入して下さい):
記事を引用する

名前・メール・URLを記憶する

BestBBS!! 0.4.3