dedlfix: whitelist vs. CAPTCHA - Ein paar Fragen hierzu

Beitrag lesen

echo $begrüßung;

Nee, ich sehe das gar nicht als Ruhekissen an, was heute Stand der
Absicherungs-Technik ist, kann morgen schon veraltet sein, das ist mir klar.

Sag mir als Bäuerin mal bitte was Du jetzt genau mit "kontextgerechte
Behandlung" meinst. :-)

Nun, ich verwies ja schon auf </archiv/2009/1/t182131/>, in dem das Thema auch speziell für das Mail-Umfeld behandelt wurde. Ansonsten führt die Nichtbeachtung der Regeln eines Systems beim Einfügen von Daten in dieses zu Sicherheitslücken, die auf Namen wie SQL-Injection und XSS hören. Diese Fehler sind in der Liste der Top-25-Programmierfehler angeführt und regelmäßig bei Fragen hier im Forum zu beobachten. Es geht darum, dass bestimmte Zeichen in bestimmten Umgebungen (Kontexten) eine besondere Bedetung haben und man sie anders notieren muss (maskieren), wenn man diese Sonderbedeutung nicht haben möchte. HTML reagiert beispielsweise auf die Zeichen <>&"'. Sollen diese nicht zum Öffnen und Schließen von Tags, Entitys (oder NCRs) oder Attributwerten angesehen werden, müssen sie als &lt; &gt; usw. notiert werden. Vermutlich weißt du das schon. Es gibt aber noch mehr Umgebungen mit ihren eigenen Regeln. In SQL-Strings muss ein ' als ' notiert werden, in URLs findest du bestimmte Zeichen als %xx wieder, und für Email-Header gelten ebenfalls Regeln, wie Nicht-ASCII-Zeichen notiert werden müssen, um nur mal wenige unvollständige Beispiele zu bringen. All das versteht man unter kontextgerechter Behandlung. Wenn du die Regeln des Kontextes beachtest, kann dir im Prinzip nichts mehr passieren, denn alle Sonderzeichen werden ja so entschärft, dass sie nicht mehr wirken. Man kann dann zwar immer noch Mist eingeben, aber das kann man mit einer auf wenige Zeichen beschränkten Whitelist auch. Nur Schaden anrichten kann der Mist nicht mehr bei fehlerfreier Kontextbeachtung.

echo "$verabschiedung $name";