Sicherheit Text von User
am 10.08.2006 18:34:11 von Steffen Held
Hallo zusammen,
ich möchte Text von einem User in einer MYSQL - Datenbank speichern
und später Begriffe im Text suchen.
Wie geht man da Sicherheitstechnisch ran?
- Reicht es wenn ich den Text vom User mittels
mysql_real_escape_string() in die DB speichere?
Ich habe schon viel über gute und böse Variablen gelesen, aber wie
man eine freie Texteingabe richtig prüft habe ich noch nirgends
gelesen. Man soll keine Metazeichen erlauben, aber wenn ich
Texte/Sätze schreibe gehören die einfach dazu. z.B. " % ? ! () &
Allgemein gefragt, ist es ausreichend
- Daten in eine DB mittels mysql_real_escape_string() zu speichern?
- Daten für eine Ausgabe am Bildschirm mittels htmlentities() zu
behandeln?
Grüße Steffen.
Re: Sicherheit Text von User
am 10.08.2006 21:42:43 von Thomas Rachel
Steffen wrote:
> ich möchte Text von einem User in einer MYSQL - Datenbank speichern
> und später Begriffe im Text suchen.
> Wie geht man da Sicherheitstechnisch ran?
> - Reicht es wenn ich den Text vom User mittels
> mysql_real_escape_string() in die DB speichere?
In diesem Fall wohl schon, wenn der Text ansonsten keine Funktion haben
soll.
Soll er jedoch semantisch weiterverarbeitet werden, wie etwa als
Dateiname oder ähnliches, sind weitere Tests erforderlich.
> - Daten in eine DB mittels mysql_real_escape_string() zu speichern?
Ja, denn diese Funktion quotet alle Zeichen, die für die DB gefährlich
sein könnten oder den Einfügeprozeà stören könnten - wie beispielsweise
auch das Nullbyte (-> \0) und natürlich auch den '\', der ja eine
Sonderbedeutung hat und gequotet zu '\\' wird.
> - Daten für eine Ausgabe am Bildschirm mittels htmlentities() zu
> behandeln?
Hier kommt es wiederum drauf an, ob Du den Text als reinen Text behandeln
willst (dann hast Du recht), oder ob Du vielleicht gewisse Tags erlauben
willst, andere hingegen nicht etc. Hier würde dann eine tiefergehende
Untersuchung fällig - das fiele dann nämlich schon aus der o.g.
Kategorie "keine weitere Bedeutung" heraus.
Thomas
--
Erst wenn die letzte Netiquette zertreten, der letzte Checkgroups
misachtet, die letzte Gruppe totverschoben und die letzte Hierarchie
gelöscht wurde, dann werdet ihr merken, dass HTML euch nicht antworten
kann. (M. Mehring in dcpmn)
Re: Sicherheit Text von User
am 10.08.2006 21:46:35 von Niels Braczek
Steffen schrieb:
> Allgemein gefragt, ist es ausreichend
> - Daten in eine DB mittels mysql_real_escape_string() zu speichern?
Ja.
> - Daten für eine Ausgabe am Bildschirm mittels htmlentities() zu
> behandeln?
htmlspecialchars() sollte reichen.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------