SSIはおろか、独自の CGIさえも許可しない場合が常識化しています。その最大の理由がセキュリティに関係しています。SSIや CGIは、サーバに負担をかけます。しかし、実際には不用意なプログラムによるサーバのダウンや情報の漏洩です。SSIでは、UNIXのコマンド処理が可能なため、セキュリティの見地から、使わせたくないことに多少は理解できます。SSIを使うことで、サーバのセキュリティにはどのような影響があるのでしょうか?CGIプログラムを許可するかどうかという基本的に同じ問題に過ぎません。CGIプログラムに対して設けているのと同じ制約を置くとすれば、特に新たなリスクが発生してくるということはありません。SSIを許可しても、execコマンドは使えないようにしているサーバも少なくありません。そのような制約をするのは、execコマンドが CGIプログラムよりも多くのことができると判断しているからですが、実際はそんなことはありません。Perlで書く CGIプログラムの中でできてしまうことは、かなりたくさんあり、SSIよりもはるかに多いのです。SSIによってできることは、ユーザがボタンをクリックしなくてもプログラムを起動できるようにすることだけです。CGIプログラムのリンクを貼るだけでも、CGIプログラムを起動できるわけですから、それとたいして違うわけではありません。その意味では、サーバ側で execコマンドが使えないというのは、矛盾があります。SSIは、CGIプログラムと同じ程度のリスクしか与えていないことです。ですから、サーバに対して CGIプログラムを許可するのなら、SSIのすべての機能を使わせるべきと考えます。ただし、サーバの負荷が過大になるとするのなら、1つの手段として SSIを使えないようにしておくほうが安心ともいえるでしょう。SSI解析の負担が生じたときに、どのような対策を講じるべきかを考えなければならないでしょう。CGIプログラムを見抜くことは至難のことです。私は頻繁に外国のサイトを閲覧します。特に、企業サイトではスパイウェアをインストールしようとしています。それを裏で行っているのが SSIです。HTMLソースを見ても、SSIが動いているのは分からないのです。SSIは、プログラムの結果を表示させるため、ソースには現れない性質を持っています。唯一、Webブラウザの URL欄に表示されるファイルの拡張子が「.shtml」だけが、SSIの動作を裏付けています。SSIを実行できるサーバもあります。