Wie schreibe ich sicheren Code?

Schützen Sie sich vor Cross-Site Scripting!

Ich habe in den letzten Monaten an sicheren Code-Praktiken gearbeitet und versucht, die einfach zu verwendenden Methoden mit der Community zu besprechen. Die Menge an unsicherem Code, die wir täglich sehen, ist wirklich schockierend und wir sind uns alle einig, dass „Vorbeugen besser ist als Heilen“.

Der beste Weg, um unseren Code und unsere Anwendungen zu schützen, besteht darin, sie von Anfang an richtig zu programmieren. Das Schreiben eines sicheren Codes ist weder schwierig noch komplex. Der Programmierer muss lediglich wissen, wo die Sicherheitsprüfungen durchgeführt werden sollen. Es handelt sich um ein paar zusätzliche Codezeilen, die jedoch eine große Anzahl von Angriffen auf Ihre Anwendung abwehren können.

Lass uns reingehen!

In diesem speziellen Artikel unter „Wie schreibe ich sicheren Code?“ Geht es um das Thema Cross-Site Scripting.

Fehler beim Cross-Site-Scripting treten immer dann auf, wenn eine Anwendung nicht vertrauenswürdige Daten aufnimmt und diese an einen Webbrowser sendet, ohne sie ordnungsgemäß zu überprüfen und zu schützen. Mit XSS können Angreifer im Browser des Opfers Skripts ausführen, mit denen Benutzersitzungen missbraucht, Websites entstellt oder Benutzer zu böswilligen Websites umgeleitet werden können.

Der folgende Code ist eines der Beispiele, warum XSS-Angriffe stattfinden, die vorgenommenen Eingaben nicht bereinigt werden und direkt an den Parameter übergeben werden.

String firstNameParameter = (String) request.getParameter ("firstName");

Der vom Benutzer eingegebene Wert wird sofort in der lokalen Variablen firstNameParameter gespeichert, und der Wert wird dann ohne Ausgabecodierung in einer HTTP-Antwort an den Browser gesendet.

In diesem Artikel gehe ich auf einige verschiedene Arten von Angriffen und Methoden ein, denen Sie täglich begegnen, und Methoden, mit denen Sie sie verhindern können:

1. Reflektiertes XSS

Es ist für ein Opfer nach dem anderen tragisch. Es kann in Aktion gesehen werden, wenn eine böswillige Nutzlast an das Opfer übergeben wird und dieses auf die böswillige URL klickt und dem Hacker Zugriff auf seine Cookies und andere Daten gewährt.

Hier ist ein Beispiel für eine Nutzlast, bei deren Ausführung der Angreifer Zugriff auf die Details des Opfers hat.

https://mybank.com/submitForm.do?customer=