next up previous contents
Next: 12.5.3 suEXEC Up: 12.5 CGIとセキュリティ Previous: 12.5.1 User/Group指定子

12.5.2 ユーザのCGIの実行

一般ユーザが自分のディレクトリに置いたCGIを動かす事が出来ると、 一般ユーザにとって、サーバを非常に魅力的なものになります。 サーバ管理者が預り知らないプログラムがサーバの権限で動く事になるので 十分なセキュリティに対する配慮が必要です。

Apacheの設定でユーザのCGIの実行を許可するには、

1.
まず、access.confに次のような設定をしてください。
<Directory /home>
AllowOverride None
Options ExecCGI
</Directory>
AllowOverrideに他の設定がある時は書いて下さい。
(但し、AllowOverride Optionsは設定しないで下さい。)

2.
このままでは/home 以下にプログラムが置かれていても、それが CGIであるのか否かが判別できません。
そこでsrm.confの中でCGIに対するAddHandler指定子の部分のコメントを 外します。
AddHandler cgi-script .cgi
これでファイル拡張子が.cgiのファイルを CGIスクリプトであるとサーバが判断します。 他の拡張子も使いたい時は追加して下さい。

これでユーザは、自分が作ったCGIプログラム を.cgiという ファイル拡張子を附けて、UserDir指定子で定義されたディレクトリ の下に置くとそのURLでCGIを動かす事が出来ます。

Apacheの設定でユーザのCGIの実行を禁止するには、 access.confに次のような設定をしてください。

<Directory /home>
Options None
</Directory>
(他のオプションがあるときは書いても構いませんが、オプションが 何も無い時は必ずOptions Noneを指定して下さい。 Options指定子自体何も書かないとデフォルトでOptions All と解釈され結果的にOptions ExecCGIも選ばれてしまうので注意して下さい。)



Noriyo Kanayama