Sicherheit bei Text von User
Steffen
- php
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?
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
Grüße Steffen.
HI
Ich denke die umwandlung [code lang=php]$text = htmlspecialchars($text);[code] reicht...
sonst hätt ich ein sicherheitsproblem, das meine «Häcker» freunde sicher gefunden hätten ;-)
gruss nimble
Danke für deine Antwort.
Nun habe ich mein Datenmanagement nochmals überdacht und bin zu folgendem Entschluss gekommen:
Grüße Steffen.
HI
Ich denke die umwandlung [code lang=php]$text = htmlspecialchars($text);[code] reicht...
sonst hätt ich ein sicherheitsproblem, das meine «Häcker» freunde sicher gefunden hätten ;-)
gruss nimble
Hallo Forum,
Nun habe ich mein Datenmanagement nochmals überdacht und bin zu folgendem Entschluss gekommen:
- Daten vom User dürfen keine < > enthalten, da bei evtl. Ausgabe das Ganze unschön ausschaut auch bei Verwendung von htmlspecialchars()
Also kann man in deinem System weder Artikel über Mathematik noch Programmtext-Beispiele noch HTML-Beispiele speichern. Das ist übel.
- Daten vom User werden mittels htmlspecialchars() in die Datenbank geschrieben
Du bist dir also hundertprozentig sicher, dass niemals jemand auf die Idee kommen könnte, die Daten z.B. in einem Texteditor zu betrachten zu wollen?
- SQL Variablen ausschließlich mit mysql_real_escape_string()
- Bei der Ausgabe von Daten wird nochmals, auch wenn unnötig, htmlspecialchars() angewendet.
Super, dann kann man in deinem System kein kaufmännischen Und und keine einfachen oder doppelten Anführungszeichen verwenden. Willst du die Daten wirklich derart verstümmeln?
Daten müssen immer _nur_ für das nächste Übertragungsmedium maskiert werden, also htmlspecialchars bei der Ausgabe auf Webseiten, $DBMS_escape_string bei der Verwendung in SQL-Statements und urlencode bei der Verwendung in URLs.
Gruß
Alexander Brock