• 締切済み

cgi-binに*.cgiを置く理由

cgiファイルの置き場所を特別なフォルダにするのは、そのフォルダに対してパーミッションや.htaccessの設定をpublic_htmlよりもより安全な設定にするためだと思うのですが、具体的にはpublic_htmlにcgiを置かせた場合、管理者はユーザのどのような攻撃を考えればよいですか?

みんなの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

セキュリティ対策さえちゃんとしていれば、 ScriptAlias (cgi-binに置く場合) AddHandler + Option ExecCGI (public_html等に置く場合) のいずれの方法でも問題ないと思います。 CGIを特別なフォルダに置くのは、70%近くのシェアを誇るApacheのデフォルト設定がそうなってることに由来しているだけのような気もします。

  • fbsd5453
  • ベストアンサー率7% (3/40)
回答No.1

cgi-binというフォルダにCGIを設置する場合、ScriptAlias http://httpd.apache.org/docs/1.3/howto/cgi.html.ja.jis#scriptalias というものが有効になっている場合が多いです。 スクリプトエイリアスがかかっているとApacheは全てのファイルに対するアクセスをCGIとして実行しようと試みます。 例えばブラウザで直接ログファイルを指定してもファイルの内容を表示するのではなくCGIとして実行しようとします。 通常のファイルには実行するための権限がないので失敗し、エラーが返ってきます。また、仮に実行権限があったとしてもログファイルは実行できないので失敗します。 よくcgi-binの中に画像ファイルを置けないということがありますがこれはScriptAliasによるものです。 よって、ScriptAliasを利用しないでCGIを設置する場合は ・ログファイルのあるディレクトリに.htaccessで制限をかける などをしてログファイルを盗まれないようにしなければいけません。

参考URL:
http://httpd.apache.org/docs/1.3/howto/cgi.html.ja.jis#scriptalias