Cross-Site-Scripting (XSS) in Formularen verhindern

Unter Cross-Site-Scripting (Abgekürzt durch XSS) versteht man die Ausnützung von Sicherheitslücken auf Webseiten. Meistens bestehen solche Sicherheitslücken in Formularen.

Auf Wikipedia.org findet man eine gute Beschreibung zu XSS: http://de.wikipedia.org/wiki/Cross-Site_Scripting

Es gibt natürlich verschiedene Möglichkeiten dies zu verhindern. Bei der Verwendung von Formularen (Loginformular, Kontaktformular, Suchformular, etc) sollte man vor der Ausgabe der Benutzereingaben diese überprüfen.
PHP bietet hier eine praktische Funktion:

htmlspecialchars()

//zB:
htmlspecialchars('$_POST['benutzereingabe']);

Diese Funktion verhindert, dass eingegebener Code nicht einfach ausgegeben werden kann. Dies passiert durch folgende Umwandlungen:
  • & (Ampersand/kaufmännisches Und) wird zu '&'.
  • " (doppeltes Anführungszeichen) wird zu '"', wenn ENT_NOQUOTES nicht gesetzt ist.
  • '  (einfaches Anführungszeichen) wird nur zu ''', wenn ENT_QUOTES gesetzt ist.
  • < (kleiner als) wird zu '&lt;'
  • > (größer als) wird zu '&gt;'

{googleAds}
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2717861494506240";
/* Links - content */
google_ad_slot = "6814663901";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
{/googleAds}