Luky.cc NetworkLuky.cc NetworkLuky.cc Network - AutoDetectLuky.cc Network - AutoDetectEinloggenLuky.cc Network - AutoDetect

LukyDeluxe8 1.0 
dAxEngine 1.0 powered 

LukyDeluxe8

LukyChat

LukyThoughts

PHP

MySQL

CS: S

Service

 

T
u
t
o
r
i
a
l
 

 


PHP Tutorial > Kapitel 10: Sicherheit


Antworten zu Fragen aus Kapitel 9:
1. Was macht der Switch Ausdruck?
Switch ist eine andere Schreibweise für die IF Anweisung.
2. Welche drei Funktionen benutzt man um durch Verzeichnisse in einer While Schleife zu "loopen"?
opendir(), readdir() und closedir().
3. Kann man [url1=http://www.php.net/rename]rename()[/url] auf Dateien und auf Ordner anwenden?
Ja.
4. Welche Funktionen benutzt man um Dateien und Ordner zu löschen?
Dateien: unlink()
Ordner: rmdir()

Was ist Sicherheit?
Zuerst stellt sich die Frage, vor was soll man Sicherheit haben?
Vor dem, dass jemand in Deine Wohnung einbricht und Deinen Server stiehlt oder vor dem, dass jemand Deine Seite "hackt"?
Beides ist möglich und kann nicht 100%ig ausgeschlossen werden.
Doch wenden wir uns lieber der größeren "Gefahr", dem "gehackt" werden, zu.

Tutorial_Kapitel10_Beispiel_1.php:
<?php

echo "Hallo Welt";

?>


Ist dieses Beispiel sicher? Kann man es nicht irgendwie doch hacken?
Im größer und komplizierter Dein PHP Script ist, desto schwerer wird es für Dich mögliche Sicherheitslücken zu finden.
Beispiel 1 ist hingegen Idiotensicher, da es keine "Kritischen Befehle" ausführt. Befehle, die Deinen Server beeinflussen, sollten mit Sorgfalt eingesetzt werden.

Vertraue niemals dem Benutzer
A
lles, was von einem Benutzer kommt, ist potentiell "vergiftet" und "verstrahlt".
Zuerst müssen die Daten "gesäubert" werden bevor sie durch kritische Befehle gelangen.
Dies klingt Paranoid, ist es vielleicht auch, aber so kannst Du dir sicher sein, dass Du gar nicht oder erst durch einen Super-Profi ausgetrickst wirst, der dank deinen Sicherheitsmaßnahmen nur sehr geringen Schaden anrichtet.

Variablentypen auf richtigen Typ prüfen
W
enn Du Variablen über Links oder Formulare weitergibst, solltest Du immer darauf achten, was Du bekommst.
Beim Arbeiten mit Datenbanken kann es vorkommen, dass Benutzer von außen zufällig eine schwache Stelle im PHP Script entdecken und bösen Code einschleusen.
Auf http://at.php.net/manual/de/ref.var.php findest du eine Liste von Funktionen, mit denen du Variablen auf Typen überprüfen kannst.

Register Globals
Register Globals ist eine PHP Einstellung, die erlaubt, dass $_GET, $_POST und $_COOKIE Werte direkt als Variablen im PHP Script erscheinen, wenn sie auf "on" gestellt ist.
Wenn jetzt ein $_GET["wert1"] existiert, gibt es automatisch die Variable $wert1.
Die meisten "Free PHP Hoster" haben diese Einstellung "on". Dies ist eine hohe Sicherheitsfalle für unerfahrene Programmierer.

Tutorial_Kapitel10_Beispiel_2.php:
<?php

if($passwort == "meinpasswortlala")
{
 
$do = 1;
}

if(
$do == 1)
{
 echo
"Mein größtes Geheimnis: Ich lutsche noch immer an meinem Daumen :(";
}

?>


Man muss in diesem Beispiel nicht einmal das Passwort wissen, sondern nur die Variable $do auf eins setzen um das "Geheimnis" zu lüften.
Rufe das PHP Script folgendermaßen auf und Du kommst trotzdem rein: Tutorial_Kapitel10_Beispiel_2.php?do=1
WIESO? Ganz einfach: In diesem Script wird die Variable $do nicht gesetzt, außer wenn das Passwort richtig ist.
Ist Register Global also "on" wird das Tutorial_Kapitel10_Beispiel_2.php?do=1 also $do = 1; übernommen und somit wird bei der zweiten IF Abfrage durchgelassen.
Hätte man hier $_GET["do"] verwendet, wäre das nicht passiert. ;)

Also, wenn Du die Möglichkeit hast Register Globals auszuschalten, mache es.

Alle Beispiele von Kapitel 10





 

Navigation «
 

Einführung
Basiswissen / HTML
Tutorial
Codeschnipsel
Links

Sitemap

LD unterstützen «
 

 

Developed by dAxpHpNIzER™
Copyright © Lukas Wojcik 2002 - 2025. Alle Rechte vorbehalten. AGB

 

Extesizer.at