• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Textfeld vor falscher Benutzereingabe sichern

Status
Für weitere Antworten geschlossen.

Icy

Neues Mitglied
Hallo,

ich habe ein Eingabefeld für Benutzer, dessen Eingabe in einer MySQL-Datenbank gespeichert wird.
Nun würde ich gern mal ganz genau wissen, wie man dieses Feld vor einer gefährlichen Eingabe schützen kann, mit der bspw. der Code zersprengt wird oder die Tabelle bearbeitet wird.
Ich freue mich über jede Antwort :-)

MfG Icy
 
Dafür gibts ein paar schöne funktionen in PHP
PHP:
$usereingabe = "xxx";

//Legen wir als erstes fest, welche HTML-Tags erlaubt sind
//Leeres Array = Alle Tags verbieten
$allowed_tags = Array("<br>","<p>");
//alle nicht erlaubten Tags rauschschneiden:
$usereingabe = strip_tags($usereingabe,implode('',$allowed_tags));

//Jetzt am besten erstma von php eingefügte \ entfernen
$usereingabe = stripslashes($usereingabe);

//Umlaute und spezielle Zeichen in Html entities umwandeln
// ä wird z.b. zu &auml;
$usereingabe = htmlentities($usereingabe);

//Wenn du es dann noch für MySQL sicher machen willst
//hilft dir diese Funktion (es muss schon eine Verbindung zum
//MySQL Server existieren damit dieses Funktion funktioniert)
$usereingabe = mysql_real_escape_string($usereingabe);

//Jetzt kannst du das gefahrlos speichern.
 
@frank:

PHP:
if(get_magic_quotes_gpc())
    $usereingabe = stripslashes($usereingabe);
 
von Franks beispiel rate ich ab, da z.b. schädlicher code durch die ereigniss atribute der tags eingefügt werden kann.
 
Ich verstehe den Sinn von strip_tags() irgendwie ohnehin nicht, wenn man danach htmlentities() anwendet - bin ich zu doof dafür oder ist das wirklich überflüssig?
 
@bcf:
du kannst strip_tags weglassen wenn du danach htmlentities anwendest. Dann stehen sie aber im Text (ohne eine Bedeutung). D.h. das macht den Text dann unleserlich

@Slibbo:
Ereignisattribute ?
 
Könnte mana cuh Kernatribute und Ereignissatribute nennen.
Hier z.b. für den P Tag.

HTML-Tag:<p>

Und mit Sicherheit meine ich XSS.
 
ist doch oben nur ein Beispiel wenn du manche tags erlauben möchtest - ist ja nicht gesagt dass du es machst.

Aber wenn ich es nicht hingeschrieben hätte, wäre irgendwann die Frage gekommen

"Und wie geht das wenn ich manche html tags zulassen will ?"

-.-
 
War doch garnicht böse gemeint. :) Ich wollte nur drauf hinweisen das praktisch alle Tags im Internet Explorer gefährlich sind und diese Lösung somit eher nicht Ratsam ist. :)
 
dafür gibt es auch extra eine PECL, kann ich raussuchen wenn ihr möchtet...

grade sachen die src tags enthalten sind gefährlich, aber auch href und style...

so könne style="background:url(http://andereseite.net/warenkorp/kaufen.php?1243);

für jemanden der mit einer session oder einen cookie auf andererseite.net angemeldet ist, schlimme folgen haben.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben