Informationen zur php Nutzung

Punkte, die bei der Nutzung von php zu beachten sind:

Auf dem zentralen Server steht die php Version 5.5 zur Verfügung. Um php auf eine Website verwenden zu können, müssen sie die Nutzung beantragen und dabei die Nutzungsbedingungen akzeptieren. 

Bei der installierten php Version gilt es folgendes zu beachten:

  • Die PHP Version 5.5 ab 2015 läuft nicht mehr als Apache-Modul sondern als Fast-CGI.
  • Die Konfigurationseinstellung register_globals ist neu auf off gesetzt. Dies bedeutet, dass auf Variablen, die von einem Formular übermittelt werden, nicht mehr direkt via $var_name zugegriffen werden kann. Stattdessen ist $_REQUEST['var_name'] zu verwenden.
  • Die Funktion virtual() wird nicht mehr unterstützt. Ersetzen Sie sie mit include() oder einer ihrer Varianten.
  • Der php-Prozess läuft unter demselben User, welchen Sie auch für den FTP-Account benützen. Sie können daher die Sicherheit erhöhen, indem Sie für ein PHP-Skript nur die Lese- und Schreibrechte für den Datei-Owner setzen.
  • Anstatt $_SERVER['REMOTE_USER'] ist $_SERVER['REDIRECT_REMOTE_USER'] oder $_SERVER['PHP_AUTH_USER'] zu verwenden.
  • Anstatt $_SERVER['HTTP_HOST'] ist $_SERVER['HTTP_X_FORWARDED_HOST'] zu verwenden.
  • Anstatt $_SERVER['REMOTE_ADDR'] ist $_SERVER['HTTP_X_FORWARDED_FOR'] zu verwenden.
  • .htaccess und Zugriffsschutz mittels IP-Adresse:
    Da alle Requests zuerst auf dem zentralen Webserver, der als Reverse Proxy dient, entgegengenommen werden ist die IP Adresse des Clients diejenige vom zentralen Webserver. Die IP Adresse des eigentlichen Clients wird in den HTTP header X-Forwarded-For geschrieben. Deshalb muss ein IP Schutz im .htaccess wie folgt eingerichtet werden:
       order deny,allow
       deny from all
       SetEnvIF X-Forwarded-For "1.2.3.4" AllowIP
       SetEnvIF X-Forwarded-For "1.2.3.5" AllowIP
       Allow from env=AllowIP
            
    Je nach Konfiguration Ihrer Website werden statische Files wie css oder js Files vom zentralen Webserver geholt. Falls diese Files auch geschützt werden sollen braucht es noch folgende Ergänzung im .htaccess:
       # statische Files schützen
       <FilesMatch "\.(css|js)$">
           Allow from 1.2.3.4
           Allow from 1.2.3.5
       </FilesMatch>
              
  • In den Nutzungsbedingungen wird verlangt, dass Passwörter nur verschlüsselt gespeichert werden dürfen. In der PHP Dokumentation für die Funktion Crypt finden Sie Beispiele, wie dies gemacht werden kann.

Zugriffsschutz mit AAI

Wenn Sie den Zugriff auf ein PHP-Skript per AAI schützen möchten, so müssen die entsprechenden Direktiven auf dem zentralen Webserver erfasst werden. Bitte benützen Sie in diesem Fall den Service Desk und geben Sie uns folgende Informationen bekannt:

  • Das zu schützende Verzeichnis
  • Die gewünschten Apache-Direktiven (Shibboleth)

Empfehlungen bei der Verwendung von Sessions

Wenn Sie mit PHP die Session-Funktionen benützen möchten und dabei die SessionID mittels Cookie beim Client speichern, empfehlen wir Ihnen einen eigenen Namen für die Session zu vergeben. Ansonsten kann es zu Konflikten mit bestehenden Cookies des Clients geben, insbesondere wenn Ihre Applikation auf einer vielgenutzen Domain (z.B direkt auf uzh.ch) läuft.