Technologie

Server Side Include (SSI)

Nazwę tą można przetłumaczyć jako łączenie dokumentów po stronie serwera. Jest to prosta technologia, dająca możliwości automatycznego generowania stron. Dzięki niej możemy w locie łączyć strony składające się fizycznie z wielu plików (np. stały nagłówek dołączamy do często zmieniającej się treści), wyświetlać aktualną datę i godzinę, czas ostatniej modyfikacji zadanego pliku, czy też wykonywać programy umieszczone na serwerze. Szczególnie ta ostatnia funkcja daje ciekawe możliwości, ponieważ wynik działania programu może być widoczny na stronie. Jest to element podobny do technologii CGI.

Komendy SSI wstawiamy w znacznikach komentarzy. Zapewnia to zgodność z wersjami serwerów i przeglądarek nie obsługujących SSI, gdzie znaczniki te są po prostu niewyświetlane.

Najważniejsze polecenia SSI to:

  • <!--#echo="nazwa_zmiennej"--> - gdzie zmienna jest dowolną zmienną środowiskową zarówno dla CGI jak i w szczególności dla SSI:
    • DOCUMENT_NAME - nazwa aktualnego dokumentu,
    • DOCUMENT_URL - URL aktualnego dokumentu,
    • DATE_LOCAL - aktualna data serwera,
    • LAST_MODIFIED - czas ostatniej modyfikacji danego pliku. Jest to użyteczna funkcja, która zwalnia webmastera z obowiązku zmiany daty ostatniej aktualizacji - jest to wykonywane automatycznie.
  • <!--#include file="weather.txt"--> - polecenie pozwalające dołączyć treść wskazanego pliku,
  • <!--#flastmod file="weather.txt"--> - polecenie wyświetlające czas ostatniej modyfikacji wskazanego pliku,
  • <!--#fsize file="weather.txt"--> - polecenie wyświetlające wielkość wskazanego pliku,
  • <!--#exec cmd="c:\public\script\counter.exe"--> - polecenie uruchamiające program na serwerze i wyświetlające wynik jego działania.

Uruchomienie usługi SSI wymaga dużej odpowiedzialności ze strony webmastera, ponieważ nieostrożnie użyta jest dobrą bramką dla włamywaczy. Wystarczy zrobić formularz i skrypt CGI w którym użytkownik podaje swoje imię, a potem bez sprawdzenia wydrukować przywitanie, np. "Cześć Wojtek". Jeżeli sprytny użytkownik zamiast swojego imienia poda polecenie <!--#include file="/etc/passwd "-->, to na ekranie, zamiast powitania, wyświetli się zawartość pliku z hasłami użytkowników serwera... Komendy SSI wstawiamy w znacznikach komentarzy. Zapewnia to zgodność z wersjami serwerów i przeglądarek nieobsługujących SSI, gdzie znaczniki te są po prostu niewyświetlane.

Technologii tej nie umieszczałem na schemacie ponieważ jest to funkcjonalny odpowiednik CGI.