Einer der Gruende Firefox als Browser zu nutzen ist die Erweiterbarkeit durch Addons. Neben Addons, die die taegliche Nutzung des Internets erleichtern, gibt es auch diejenigen, die bei der Suche nach Problemen, Bugs oder auch Sicherheitsluecken helfen.
So hatte ich vor einigen Tagen z.B. mit Tamper Data und einer Webanwendung, die in Kuerze in Produktion gehen soll (nicht die selbe Anwendung wie in Was’n Security?) eine Menge Spass. Mit Tamper Date hat man, mal untechnisch gesprochen, die Moeglichkeit den Traffic zwischen Internet und Browser zu veraendern. Ein kleines Beispiel aus der angesprochenen Anwendung.
Mit Hilfe der Anwendung koennen, basierend auf Eingaben, Zahlungen fuer eine bestimmte Dienstleistung getaetigt werden. Die einzugebenden Daten werden von einer Karte, wie z.B. eine EC-Karte abgelesen und in die Anwendung eingetippt. Diese Karte gilt allerdings nur fuer einen bestimmten Dienstleistungsbereich. Ich sage mal nur fuer Fast-Food Ketten 🙂
Ich komme also mit meiner Karte in das Fast-Food Lokal meiner Wahl, bestelle mir das XYZ-Menue, gebe der Dame an der Kasse meine Karte und sage „Geht auf die Karte“. Sie meldet sich an der Anwendung an, tippt den auf der Karte befindlichen Code, die Kosten und noch ein, zwei andere Dinge ein und schon ist mein Essen bezahlt.
Jetzt wurde die Anwendung extra so erstellt, dass im Bereich „Betrag“ nur nummerische Werte eingegeben werden koennen. Wenn ich ueber den Browser versuche ein anderes Zeichen als eine Zahl einzugeben, loescht die Anwendung den Eintrag. Jetzt kommt Tamper Data ins Spiele. Gebe ich jetzt einen Zahlenwert ein und bestaetige die Eingabe auf der Seite, faengt Tamper Data die Anfrage ab und bietet die Moeglichkeit Teile oder auch den kompletten Request zu veraendern. Ich kann also, ohne dass die Anwendung was mitbekommt, dem Parameter, der als Wert *eigentlich* eine Zahl enthalten sollte, eine Zeichenfolge zuweisen und mit Spannung drauf warten was die Anwendung draus macht.
Es ist nicht ungewoehnlich, wenn die Anwendung mit solch einer manipulierten Anfrage Probleme hat, da bei der Entwicklung nicht damit gerechnet wurde, dass invalide Werte eintreffen. Oftmals reagieren Entwickler auch verwundert und sagen, dass die Anwendung fehlerhafte Eingaben aber doch verhindert. Aber manchmal reicht es eben nicht nur Eingaben zu verhindern, sondern man muss auch damit rechnen, dass invalide Werte in der Anwendung aufschlagen. Und dann sollte man entsprechende Fehlerroutinen implementiert haben.
Wo ich gerade von Brower und Manipulation von Daten spreche… Vor einiger Zeit wollte man, um unter anderem den Bekanntheitsgrad und die Besuchzahlen zu steigern, auf einer Firemenhomepage ein Spiel anbieten, bei dem man auch etwas gewinnen koennen sollt
Du wirst es kaum glauben, aber in der Uni haben wir uns mit dem Thema ein ganzes Semester beschaeftigt. Robustheit ist das Schlagwort, das aus meinem Kopf nicht mehr wegzudenken ist.
Ja, manchmal sind solche Dinge einfach zu ’schlampig‘ programmiert. Wobei ich mich da selbst nicht zu weit auf das Glatteis wagen moechte, bei meinen ‚Applikationen‘ ist ja auch nicht immer alles ’sauber‘. 🙂
Quick-and-dirty regiert die Wirtschaft. 😀