PHP 5.4 & MySQL 5.5

Bösartige Formulareingaben

Jetzt Wissen mit dem video2brain-Weihnachtsabo schenken und 15 % sparen!
Mehr erfahren Alle Abonnements anzeigen
oder
39,80
Nicht jeder Benutzer meint es gut mit Ihnen, deshalb sollten Sie sich vor bösartigen Formulareingaben schützen. Wie das geht und was passieren kann, wenn Sie sich nicht vor Angriffen aus dem Internet wappnen, erläutert dieses Video.

Transkript

Die Arbeit mit Formularen ist immer auch riskant, weil ein Benutzer dort bösartige Eintragungen machen kann. Um Sie dvor zu schützen, müssen Sie aber erst einmal wissen, was für Gefahren überhaupt lauern. Und das sehen wir uns jetzt einmal an. Wir haben hier ein einfaches Formular. Sie sehen es gibt hier ein input Feld, da soll beispielsweise in Suchbegriff eingegeben werden. Normalerweise wurde dann eine Suche ausgeführt, das sparen wir uns jetzt. Wir lassen einfach den Inhalt, das was eingetragen wurde, hier wieder ausgeben. Danach steht hier irgendein Blindtext. Der ist natürlich normalerweise, wäre da ein anderer Seiteninhalt. Schauen wir uns einmal an wie das Ganze funktioniert. Also normalerweise geht das so, ich trage hier ein, beispielsweise irgendein Wort, Blume, und dann wird das hier ausgegeben. Ihre Suche nach mmmm... hat folgende Ergebnisse. Jetzt kann aber ein Benutzer hier auch etwas anderes hinschreiben. Zum Beispiel einmal folgendes. Und Sie sehen was passiert. In diesem Fall wurde das layout der Seite zerstört, weil ich plötzlich alles rot einfärbe. In unserem Beispiel ist es nicht weiter schlimm, weil es kein echtes Beispiel ist. Aber bei einer echten Webseite wäre das natürlich katastrophal. Aber der Benutzer kann weitere Änderungen vornehmen. Er kann zum Beispiel auch jetzt hier irgendein Bild anzeigen lassen, was er möchte, oder aber er könnte einfach hier hinschreiben style, das ist auch recht effektiv. Da wäre der Rest der Seite gar nicht mehr zu lesen. Oder aber, und das ist jetzt eigentlich das schlimmste, er kann auch JavaScript Code ausführen lassen. Ich gehe mal auf Absenden. Sie sehen hier kommt jetzt ein Alert Fenster. Das ist über JavaScript erzeugt und wird direkt ausgeführt. Wenn man JavaScript Code ausführen kann, dann kann man mehr machen als Alerts. Man könnte eine Umleitung auf eine bösartige Seite machen, das heitß, jeder der danach auf diese Seite kommt, wird umgeleitet irgendwo hin wo er nicht hin will. Man könnte auch die log in Daten von Benutzern auslesen. Man könnte die Cookies von einem Benutzer auslesen, das heißt in diesem Moment gibt es ganz große Probleme. Das Problem mit dem wir's hier zu tun haben ist, dass Benutzer in das Formular selbst HTML Code eingeben können. HTML Code, CSS Code oder JavaScript Code. Und dieser wird genauso behandelt, wie der Code auf der Seite selbst. Das darf nicht passieren, sonst haben wir große, große Probleme. Und wir können uns natürlich davor schützen. Die Möglichkeit uns davor zu schützen ist, wir müssen dafür sorgen, dass die HTML Sonderzeichen besonders kodiert werden und nicht mehr als normales HTML behandelt werden. Das zeige ich jetzt hier in diesem Beispiel. Wenn ich jetzt nicht den direkt ausgeben lasse, dass was der Benutzer angegeben hat, sondern das behandele mit htmlspecialchars, dann sieht das schon ganz anders aus. Schauen wir uns einmal dieses Beispiel an. Ich versuche auch dieses Beispiel hier zu korumpieren und bösartige Eingaben zu tätigen. So muss ich erstmal hier wieder das richtige auswählen. So, und jetzt versuche ich noch einmal JavaScript Code auszuführen, so wie ich es eben auch gemacht habe. Also mi diesem Script Element alert42 als Beispiel. Und Sie sehen der Code wird nicht ausgeführt, sondern er wird ausgegeben. Hier empfiehlt sich's wieder, dass wir uns den generierten HTML Quellcode anzeigen lassen, und dann sehen Sie was hier geschehen ist. Die spitzen Klammern sind nicht mehr normale spitze Klammern, sondern wurden in das entsprechende Entitie verwandelt. Und dadurch wird es zwar ausgegeben, aber es bewirkt nichts mehr. Und das heißt, dass ein Benutzer jetzt nicht mehr so einfach JavaScrip Code ausführen kann. Dieses Problem, was wir uns gerade angeschaut haben ist unter dem Namen xsscrosssidescripting bekannt. Also wichtig, immer in dem Moment wo Sie Formulareingaben auf eine HTML Seite wieder ausgeben lassen, müssen Sie sie irgendwie behandeln, beispielsweise mit htmlspecialchars.

PHP 5.4 & MySQL 5.5

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!