Erstellung sicherer Webseiten oder Never trust client input
Allgemeines
Dieses Web soll Webcontent-Anbietern eine Möglichkeit bieten sich zum Thema
Sichere Webseiten auszutauschen und eine Sammlung von
Tips und Tricks zu pflegen.
Mitmachen kann/sollte jeder der Sinnvolles zu dem Thema beizutragen hat.
Einführung
Immer wieder kommt es zur Kompromittierung von Webseiten durch eingeschleusten Code oder zum Verändern von Inhalten durch nicht Berechtigte. Das kann im Extremfall bis zum Root-Zugriff auf den gesamten Webserver führen.
Dieses wir häufig dadurch verursacht, das Inhalte dynamisch generiert werden und die entsprechenden Parameter nicht korrekt und vollständig auf erlaubte Werte geprüft werden (Stichwort bspw. SQL-Injection, siehe
Wikipedia).
Cross-Site-Scripting (siehe
Wikipedia) ist eine weitere Möglichkeit Schwachstellen auszunutzen um bspw. an Daten von Nutzern zu kommen.
Allen diesen Schwachstellen ist gemeinsam, dass Eingaben des Nutzers/Webclienten nicht vollständig auf Sinnhaftigkeit geprüft werden und so ungewollte Aktionen auslösen können.
Die Vermeidung dieses Schwachstellen ist oft nicht besonders schwierig, es fehlt aber dem Ersteller von Webseiten häufig an der notwendigen Sensibilität und Wissen.
Das
Bundesamt für Sicherheit in der Informationstechnologie, BSI hat in diesem Zusammenhang das Dokument
Sicherheit von Webanwendungen, Maßnahmenkatalog und Best Practices veröffentlicht, das von jeden Anbieter von (dynamischen) Webseiten gelesen werden sollte.
Gegenmassnahmen
- SQL-Injection kann durch sogenanntes Escapen von Eingaben (teilweise) vermieden werden. Hierunter versteht man das Maskieren von Metazeichen in den Eingaben. In dem oben genannten Wikipedia-Artikel werden entsprechende Code-Beispiele für gängige Sprachen (Java, PHP, Perl, etc) angeführt.
--
DamianBucher - 2012-02-07