Apache
ApacheでSSI(Server Side Include)を利用する際、場合によっては実行できる内容をカスタマイズしたいことがある。SSIすべてを許可すると、次のようなものがすべて実行されるからだ。
表■SSI(ディレクトリ)指定で使用されるオプション
![]()
|
上記のオプション(パラメータ)は、次のようにApacheの設定ファイル「httpd.conf」内で使用される(以下は、Red Hat Linux 7.xなどのRPMパッケージでインストールしたディレクトリ構成)。
|
<Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html> <Directory /var/www/cgi-bin> |
上記の中で、Directoryに続くディレクトリ指定が特定の個所に実行権を定義している個所だ。「/」はhttpで公開するディレクトリ下すべて、「/var/www/html」は通常htmlファイルや画像ファイルなどを置くディレクトリ下、「/var/www/cgi-bin」はCGI実行を許すディレクトリ下といった具合だ。
Optionsに続く指定は、上記リストで解説をした各オプションに相当する。許可をしたいものだけを記述すればよいわけだ。例えば次のように指定した場合、
| Options FollowSymlinks Includes |
「FollowSymlinks」「Includes」が有効になり「ExecCGI」は無効となる。代表的なオプションのそれぞれの具体的な許可内容も見ていこう。
1. Includes
Optionsに「Includes」を記述した場合には、次の指定が有効になる。
|
<!--#exec cmd="..."--> <!--#exec cgi="..."--> <!--#include file="..."--> |
2. IncludesNoExec
Optionsに「IncludesNoExec」を記述した場合には、次のようになる。
| <!--#include file="..."--> |
は有効になるが、
|
<!--#exec cmd="..."--> <!--#exec cgi="..."--> |
といったプログラム実行(exec)は制限される。htmlファイル内に他のファイルをincludeしたいものの、プログラムの実行(表示結果を取り込まない)を禁止したいといった場合に指定すればよいだろう。
3. FollowSymLinks
このオプションは、シンボリックリンクを有効(許可)にするかどうかである。シンボリックリンク自体についてはほかのTipsを参考にしてほしい。FollowSymLinksオプションが指定された場合、ディレクトリ下にリンクが存在すると、先へたどることができるようになるのだ。
ただし、万が一自分が把握してないシンボリックリンクがあった場合には、情報漏洩に結びついてしまう危険性がある。このため、ディレクトリ下すべてのファイルを把握している個所のみを指定しよう。
[木田佳克,ITmedia]
