Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Variablen
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Einsatz von register_globals: Seite 2

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Hier wird mit der Signalvariablen $login gearbeitet. Nur bei Kenntnis des richtigen Passworts soll diese auf true gesetzt werden. Dummerweise wurde diese Variable am Anfang des Beispiels nicht mit false initialisiert. Kein großes Problem, denkt man – bei dem recht komplexen Passwort. Im Gegenteil! Auf diese Weise kann ein Angreifer nun ganz einfach ohne Kenntnis des Passworts in den geschützten Bereich gelangen. Wie? Er muss an die URL lediglich

?login=true oder ?login=1
localhost/beispiel.php?login=true

anhängen. Schon wird die Variable $login auf true gesetzt und der Zugang ist auch ohne Passwortkenntnis möglich. Dies wiederum stellt ein riesiges Sicherheitsloch dar.


Neue Schreibweise = mehr Eindeutigkeit und Sicherheit

Dieses Problem hat das PHP-Entwicklerteam erkannt und spätestens mit Einführung von PHP 4.1 elegant behoben. Sämtliche über method = "post" versendeten Formulardaten sind im neuen Array $_POST gespeichert, die per method = "get" erhältlichen Daten dagegen im neuen Array $_GET. Dazu gehören auch die an die URL angehängten Parameter. Es handelt sich bei $_POST und $_GET übrigens um assoziative Arrays. Der Schlüssel wird aus dem Namen des entsprechenden Formularfelds bzw. der entsprechenden Cookie-Variablen gebildet. Wenn der Wert des URL-Anhangs ?login=true erfasst werden soll, gelingt dies über $_GET["login"]. Bei konsequent abgeschalteten register_globals ist eine Verwechslung mit einer Variablen $login nun nicht mehr möglich.

Um diese alten Möglichkeiten vollkommen zu unterbinden, wird seit PHP-Version 4.2 daher auch register_globals = Off als Standard gesetzt. Diese Einstellung bietet optimale Sicherheit und ist daher für zukünftige Projekte dringend zu empfehlen.


Erweiterungen

Ich will Ihnen natürlich nicht vorenthalten, dass seit Version 4.1 neben $_POST und $_GET folgende weitere assoziative Arrays eingeführt wurden:
$_COOKIE
Dieses Array enthält sämtliche Cookie-Variablen. Mit $_COOKIE["besucher"] würden Sie den Wert des Cookies besucher ermitteln.
$_REQUEST
Dieses Array nimmt eine Sonderposition ein. Es enthält sämtliche Werte aus $_POST, $_GET und $_COOKIE. Ich empfehle, den Einsatz von $_REQUEST zu vermeiden, da es die Bemühungen um mehr Eindeutigkeit zunichte macht. Mit $_REQUEST["login"] können Sie z. B. sowohl auf ein Formularfeld namens login als auch auf das gleichnamige Cookie zurückgreifen. Mit den neuen Variablen entfallen übrigens die bis Version 4.1 gültigen Arrays:
  • $HTTP_POST_VARS
  • $HTTP_GET_VARS
  • $HTTP_COOKIE_VARS

Dies bedeutet wiederum eine Vereinfachung der Schreibweise.

Zusätzlich werden die neuen Arrayvariablen $_SERVER, $_ENV und $_SESSION zur Verfügung gestellt. $_ENV ist für die Umgebungsvariablen und $_SESSION für das Session-Management verantwortlich. Am interessantesten ist sicher die erstgenannte Variable $_SERVER. Sie enthält sämtliche Servervariablen, also die Variablen, die der Webserver übergibt.

Wenn man früher Pfad und Dateinamen ermitteln wollte, schrieb man $PHP_SELF. Heute wird via $_SERVER["PHP_SELF"] auf diesen Wert zugegriffen.


Tipps zur neuen Schreibweise

Auf den ersten Blick wird die Schreibweise durch die neue Array-Syntax komplizierter. So konnte ein Formularfeld im PHP-Skript nach der alten Schreibweise unkompliziert ausgelesen und weiterverarbeitet werden.

<input type="text" name="telefon">

Auslesen und Verarbeiten:



Einsatz von register_globals Seite 1
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Dateien und Verzeichnisse mit TAR/Gzip komprimieren

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Änderungen an einer Webseite mittels Hash-Wert feststellen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de