Autor |
Nachricht |
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 27.04.2006 23:12
Titel [php] preg_replace für sicheren Input |
|
|
Hi,
Ich habe Formulare mit Eingabefeldern, die alles in ne MySQL schreiben. Alles UTF-8, also jede Menge Sonderzeichen können kommen und sollen bleiben. Was allerdings rausgefiltert werden soll, sind alle "gefährlichen" Zeichen (Welche auch nicht escaped etc. werden sollen, sondern rausfliegen).
Wie müsste dann preg_replace aussehen, um "\" und "'" und sonstwas zu kicken?
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 27.04.2006 23:15
Titel
|
|
|
wenn du wirklich alle \ und ' entfernen willst sollte eigentlich n simples dummes str_replace('\\','',$foo); str_replace("'","",$foo); reichen
|
|
|
|
|
Anzeige
|
|
|
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Do 27.04.2006 23:43
Titel
|
|
|
Hm, wenn das schon alle "gefährlichen" Zeichen sind, okay
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 28.04.2006 01:58
Titel
|
|
|
naja. also ich weiß von \n und \r. ' und " natürlich auch gewissermaßen. klar. aber sonst? keine ahnung. vielleicht wer anders?
|
|
|
|
|
karmacoder
Dabei seit: 15.04.2002
Ort: Fürth
Alter: 42
Geschlecht:
|
Verfasst Fr 28.04.2006 08:11
Titel
|
|
|
die werden schon selbst wissen was gefährlich ist:
escape-string()
das einzige was du dabei noch beachten musst ist die ausgabe. wenn z.b. alle ' escaped sind hilft dir das nicht wenn man damit trotzdem code in die db einschleusen kann die du danach ausführst...
|
|
|
|
|
miga
Dabei seit: 04.08.2004
Ort: offenburg
Alter: 42
Geschlecht:
|
Verfasst Fr 28.04.2006 08:48
Titel
|
|
|
oder mal bei folgenden Funktionen gucken: htmlspecialchars(), htmlentities(), addslashes(), mysql_escape_string()
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Fr 28.04.2006 10:28
Titel
|
|
|
Wenn Du ganz sicher gehen willst, machst Du ne Whitelist mit einem Range von erlaubten
Zeichen und löschst alles andere. Das halte ich aber für nicht so doll.
Du solltest dem User schon mitteilen, dass er ein falsches Zeichen angegeben hat,
sonst wundert er sich vielleicht, warum es nicht mehr da ist.
Und zum Schluss halt immer ein PDO::quote oder mysql_real_escape_string.
|
|
|
|
|
13pixelchen
Account gelöscht Threadersteller
Ort: -
|
Verfasst Fr 28.04.2006 10:54
Titel
|
|
|
Ja, das mit dem Escapen klappt schon einwandfrei. Nur da ich UTF-8 habe, ist ne Whitelist recht schwierig wegen der ganzen Sonderbuchstaben in Fremdsprachen.
Ich bin auch sowieso grade am Schrauben, weil wenn jemand einen Namen mit Sonderzeichen eingibt, wird er korrekt UTF-8 kodiert in die mysql-DB übernommen, aber diesen Namen in einer html-Mail korrekt anzuzeigen, oder gar in einem URL-Query zu übergeben, scheiter offenbar an Sonderzeichen mit mehr als 2 Bytes.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Suche sicheren Mailversand
Javascript: replace
JS | replace - regex - br
Kleine Frage zu JS replace
Javascript suchen ersetzen / replace
[javascript] replace() ersetzt nur einen match
|
|