Formularvariablen sicher machen
TumTum
- php
0 Rouven
Hallo zusammen,
ich habe folgende Frage:
Man hat mir gesagt, wenn ich ein Formular in HTML geschrieben habe und jetzt die eingetragenen Inhalte mit Post übergebe und dann mit PHP die Variablen auslesen, bzw. benutze ... dass es dann zu bösen Sicherheitsmängeln kommen kann .... also wenn dann jemand in eines der Formularfelder irgendnen bösen Script reinbastelt, den mein PHP ausversehen ausführt ...
Frage 1:
Wenn jetzt ein böser Mensch was bÖÖses in ein Formularfeld schreibt ... wann hat das überhaupt Auswirkungen? Soweit ich das nämlich absehe, werde ich diese Variablen fast ausschliesslich in if Bedingungen benutzen ...
Frage 2:
Wenn das alles doch noch zu unsicher ist einfach so mit diesen Variablen unbedacht rumzuschmeissen ... gibt es dann irgendwelche Scripte, sprich Funktionen, die einen String filtern und 'böse' Dinge aufspüren :D ?
Gruß
Der "garnicht böse" TumTum
Hi,
na ja, es gibt da so allerhand Sachen die man mit Skripten anstellen kann, je nachdem wie geschickt oder ungeschickt du programmiert hast.
Nehmen wir als Beispiel an, du wolltest eine Suchmaschine für deine Datenbank anbieten und hättest so etwas in der Art:
tabelle user:
benutzer | passwort
tabelle suche:
inhalt | ...
Nun hättest du die Abfrage:
SELECT inhalt FROM suche WHERE inhalt = '$suchstring'
Stell dir vor, in dein Formular würde jetzt nicht ein Suchbegriff sondern etwas wie:
'; UPDATE user SET passwort = 'meinpasswort
eingetragen.
Je nach Datenbanksystem könnte das dafür sorgen, dass alle Passwörter auf 'meinpasswort' gesetzt würden.
Ich könnte auch noch andere Sachen machen, z.B. könntest du mir ein Gästebuchformular anbieten, da schreib ich dann sowas:
<script type="text/javascript">
while (1 != 0) {
alert("Diese Seite ist damit lahmgelegt");
}
</script>
Wenn du keine (Skript-)Tags abfängst, hast du ein Problem, sobald du meinen Eintrag auf der Seite ausgeben lässt.
Für manche dieser Sachen gibt es Skript, so Sachen wie escape oder striptags oder solche Befehle, andere musst du mit deinem Menschenverstand abfragen, ob es da zu Problemen kommen kann.
MfG
Rouven