lichtheini: SUchen und ersetzen

Beitrag lesen

Hallo Rainer,

man kann das Wissensniveau des Fragestelers nicht immer gut einschätzen, manchmal traut man ihm mehr zu als er kann und manchmal hält man ihn fälschlicherweise für einen Anfänger. In jedem Fall kommen dann für den Fragenden unverständliche Antworten.

Folgende zwei Dinge wollen dir die Antwortenden sagen:
Der $_GET-Array wird stumpf mit den Daten gefüllt, die das PHP-Skript bekommt. Ein Angreifer (und davon gibt es genügend), kann den Parameter "s" setzen, ohne auch nur einen Blick in dein HTML-Formular geworfen zu haben. Und das mit Dingen, die man sich als Anfänger (zu denen ich auch gehöre) nicht mal Ansatzweise vorstellen kann. Deswegen sind POST und GET grundsätzlich "böse".

Zweitens: Regex über beliebeigen HTML-Code geht fast immer schief. Es gibt genügend Konstellationen, denen man nur mit sehr unübersichtlichen Suchmuster Herr wird.
<img src="/bin/image.php?q=34$&amp;f=img" title="Ein Beispiel für ein <HTML>-Tag">. Dafür haben Browser nicht umsonst einen Parser und keine Regex.
Wenn dein Code aus der Datenbank in gewisserweise genormt ist, dann kann man vielleicht für diesen speziellen Fall eine Regex basteln. Also zum Beispiel nur betimmte Elemente erlaubt, eine eindeutige DOM-Struktur, alle "Sonderzeichen" entfernt, etc... Wenn es sich um ungefilterten Code für ein Blogpost oder ähnliches handelt, dann lautet die sicherste und zukunftsorientierte Antwort: Passe dein Datenmodell an. Dabei sind die Kollegen hier gerne behilflich.

Den Rest des Threads kann ich mir schenken. Wenn einer eine bessere Lösung gewusst hätte wäre es sinnvoll gewesen diese hier zu posten, aber so...

Dazu hat Der Martin schon etwas geschrieben.

Grüße, der lichtheini