Schon vor einiger Zeit ging das Thema XSS Lücken durch die deutschsprachigen SEO Blogs. Dabei ging es vorrangig um Linkplatzierung durch Ausnutzung einer XSS Lücke in einer Website. Nicht so ganz das saubere White-Hat SEO. Was XSS-Lücken sind wird bei Wikipedia ausführlich erklärt. Im Grunde genommen kann das auf jeder Seite passieren auf der es eine Möglichkeit gibt dynamische Inhalt abzufragen, wenn nicht ganz sauber programmiert wurde.
Was man also nun auf keinen Fall möchte, ist eine Sicherheitslücke in seiner Website zu haben. Es gilt sich also davor zu schützen.
Zu Aller erst: Die Weblication Suche ist sicher, standardmäßig geht davon keine Gefahr aus.
Die Gefahr kann nur durch ein schlechtes Template auftauchen. Dabei wird in einem Suchfeld zum Beispiel der abgefragte Begriff einfach wieder reingeschrieben - sehr komfortabel für den Benutzer. Von Google kennt man das ja, und ist es quasi schon gewohnt.
Wie ist das also machbar?
Normalerweise habe ich mein Suchformular was so aussehen könnte:
<form action="ergebnisse.php" method="get" name="search" id="search"> <fieldset> <legend>Suche</legend> <input type="hidden" name="configurationId" value="standard-suche"> <input type="hidden" value="search" name="action" /> <label for="suche">Suche:</label> <input type="text" name="term" id="suche" value="<?php echo($_GET[term]); ?>" /> <button type="submit">Finden</button> </fieldset> </form>
Was muss ich als Programmierer beachten wenn ich vermeiden möchte dass XSS Lücken entstehen. Zunächst einmal dem Benutzer nicht vertrauen
Getreu dem Motto eines Microsoft Mitarbeiters: “All incoming data is EVIL”. Demnach fängt man einfach alles ab was nach Script ausschauen könnte. Das wären bei Javascript und HTML: „<“ „>“ „”“ „’“.
Dies ist machbar durch ein : htmlspecialchars($_GET[term]) oder ein strip_tags($_GET[term]). Mein Formular sieht danach also folgendermaßen aus:
<form action="ergebnisse.php" method="get" name="search" id="search"> <fieldset> <legend>Suche</legend> <input type="hidden" name="configurationId" value="standard-suche"> <input type="hidden" value="search" name="action" /> <label for="suche">Suche:</label> <input type="text" name="term" id="suche" value="<?php echo(htmlspecialchars($_GET[term])); ?>" /> <button type="submit">Finden</button> </fieldset> </form>

Kommentare zu XSS Lücke in Weblication Suche vermeiden
Wurden vor kurzem mit ddos angriffen in die Knie gezwungen. Einer der Cracker meinte es sind ca. 23 XSS lücken auf unserer Page.
Das kann gut sein bei vorgefertigter Software. Du benutzt eine Forensoftware, Portal und Gallerie mit integrierter Suche und viel Schnickschnack. Wenn da ein bisschen schlampig programmiert wurde ist schnell eine Lücke im Code.
Aber die Suche gibt nicht das gesuchte Wort aus.
Das mag sein, die Lücke muss ja auch nicht dort sein. Sie kann in allen Formularen, automatischen Listen oder Ausgabeskripten sein.
Schreibe einen Kommentar zu XSS Lücke in Weblication Suche vermeiden