Risiken von Server Side Includes (SSI)
CGI-Skripte und SSI (Server Side Includes) bergen einerseits Sicherheitsrisiken. Andererseits sind SSI bei Homepage-Betreibern vor allem deswegen beliebt, weil man mit ihnen schnell dynamische Seiten erzeugen kann. Per SSI kann beispielsweise das Datum abgefragt, ein CGI-Programm gestartet oder sogar ein Shell-Befehl ausgeführt werden. SSI-Direktiven werden direkt von einer HTML-Seite ausgeführt, sobald diese im Browser angefordert wird. SSI muss lediglich mit
Options +Includes
in der Apache-Konfiguration eingeschaltet sein. Dann sind zum Beispiel solche Kommandos innerhalb des HTML-Codes möglich:
<pre>
<!--#exec cmd="Irgendein-CGI-Skript" -->
</pre>
Ein Nachteil von SSI ist, dass alle Dateien zunächst von Apache auf SSI-Inhalte geparst werden - unabhängig davon, ob SSI-Direktiven drinstehen oder nicht. Das erhöht die Serverlast und kann sich vor allem auf Rechnern negativ auswirken, auf denen mehrere Webserver arbeiten, etwa virtuelle Maschinen bei einem Hoster. Dem kann man vorbeugen, indem man den SSI-fähigen Seiten andere Endungen gibt, etwa "shtml", und das in der Konfiguration entsprechend berücksichtigt:
AddType text/html .shtmlAddOutputFilter INCLUDES .shtml
Außerdem empfiehlt es sich, die Option explizit auf ein gewünschtes Verzeichnis anzuwenden. Der Grund: Optionsdirektiven können einander überschreiben. So kann es passieren, dass eine zuvor abgeschaltete Direktive weiter hinten in der Konfiguration wieder eingeschaltet wird.
Eine weitere Möglichkeit: Schalten Sie die Ausführung von Skripten und Programmen aus SSI-fähigen Seiten einfach ab. Ersetzen Sie dazu in der Optionsdirektive "Includes" durch "IncludesNOEXEC".