Benutzereingaben sicher verarbeiten

Alles, was PHP betrifft, kann hier besprochen werden.

Benutzereingaben sicher verarbeiten

Postby TheBigfoot » 30. December 2005 00:15

Guten Morgen,
also ich programmiere derzeit ein kleines CMS für meine privaten Webprojekte und würde jetzt gerne einmal wissen, wie ich sicher Benutzereinfragen auslesen und verarbeiten kann.
Ich meine mir ist bekannt, dass ich vor der Speicherung in einer Datenbank addslashes nutzen sollte, oder mit striptags HTML Code entfernen um dann meine Ausgabe nicht zu zerstören, aber welche Tipps könnt ihr mir noch geben damit der Nutzer nich doch mal irgendwelche unbeliebten Ergebnisse erzeugt ?

Thx im voraus

MfG
TheBigfoot
TheBigfoot
 
Posts: 1
Joined: 29. December 2005 23:55
Location: Nähe Stuttgart

Frage unklar

Postby Micha1975 » 01. January 2006 13:33

Hallo,
Mir ist Deine Frage nicht ganz klar. Du meinst sicher Benutzereingaben? Normalerweise bekommt jedes Objekt, dass eine Eingabe zulässt, einen Namen. Bsp:
Code: Select all
<input type="text" name="feld1">

Dieser Name steht Dir dann als Variable zur Verfügung, über die Du auf den eingegebenen String als Wert zugreifen kannst. Bsp:
Code: Select all
echo "$feld1";

Entsprechend kannst Du den Wert weiterverarbeiten, trimmen, in eine DB schreiben usw.
aber welche Tipps könnt ihr mir noch geben damit der Nutzer nich doch mal irgendwelche unbeliebten Ergebnisse erzeugt ?

Wenn Du die erlaubten Eingaben definieren kannst, biete kein Textfeld, sondern wie auch immer geartete Auswahlmenüs an ...
Sorry, aber ansonsten kann ich in Deine Fragen nur allerlei reininterpretieren, was Du gemeint haben könntest ...
cu Micha
Ich denke, dass es einen Weltmarkt für vielleicht fünf Computer gibt. – Thomas Watson, Vorsitzender von IBM, 1943
Micha1975
 
Posts: 25
Joined: 29. December 2005 15:28

Postby Wiedmann » 01. January 2006 14:03

wie ich sicher Benutzereinfragen auslesen und verarbeiten kann.

Eine Zusammenfassung (ohne Lösung) gibt es hier:
http://de.php.net/manual/en/security.variables.php

Letztendlich muss du halt vor der Verarbeitung testen, ob der übergebene Inhalt einer Variablen einen gültigen Wert hat. Wie man das jetzt im einzelnen macht, kommt ja immer darauf an, welche Werte man überhaupt erwartet. Kan man also keine Pauschale antwort geben.

Ansonsten:
Schreibe deine Scripte so, dass sie mit register_global = off funktionieren und noch wichtiger, dass bei register_global = on deine Variabalen nicht überschrieben werden:
http://de.php.net/manual/en/security.globals.php
--> teste Eingaben und initialisiere jede Variable bevor du sie benutzt.

dass ich vor der Speicherung in einer Datenbank addslashes nutzen sollte

Jein. Hier muss man ersteinmal schauen wie magic_quotes eingestellt ist . Und dann benutzt man z.B. bei MySQL mysql_real_escape_string() und nicht addslashes().

oder mit striptags HTML Code entfernen um dann meine Ausgabe nicht zu zerstören,

Kommt auch immer auf den Einzelfall darauf an. Anstatt striptags() kann man je nach Fall z.B. auch htmlspecialchars() verwenden.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby KingCrunch » 02. January 2006 08:52

Pauschalantwort: Man reduziert jede Eingabe auf ihre Minimalmöglichkeiten und prüft sie dementsprechend.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests