Mailinglisten-Archive |
Hi Ivan, Ivan Schmid schrieb: > Als Schutz vor möglichen Cross-Site-Scripting (XSS) Angriffen > auf unsere > Web-Applikation möchte ich im Header auf jeder Site ein > Schutz einbauen. > Betroffen davon sind eigentlich alle möglichen Header > Eingaben.( Get, Post, > Cookie, Session, Put ). > > $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION Meist entscheidet man über die Vertrauenswürdigkeit von HTTP-Daten nicht nur anhand des Headers und dem Dateninhalt, sondern vor allem über die Authentizität der Verbindung und die Plausibilität des Inhalts. Dh. es sollte feststehen, dass es sich um den gewünschten Nutzer handelt, die Inputdaten sollten auf einen plausiblen Zustandsraum beschränkt werden, z.B. über reguläre Ausdrücke oder andere Inhaltsvergleiche wie <= usw. Daneben sollten natürlich nur die Daten Vertrauensgrenzen überschreiten, bei denen es tatsächlich notwendig ist. > 1. Die Frage: > *************** > Wie könnte ich nun am einfachsten und schnellsten alle diese Variablen > checken und durch die Funktion make_clean säubern ? > Was sollte die Funktion make_clean sonst noch alles checken? Alles über einen Kamm zu scheren ist imho unklug, weil man dann den größten gemeinsamen Nenner benutzen muss. Statt dessen sollte man Zahleneingaben auf Ziffern überprüfen, SQL-Parameter auf SQL-Escapes, HTML-Input auf gültige Tags, Strings auf maximale Längen usw. . > *************** > 2. Mein Vorschlag: > *************** Parameter zum späteren Anzeigen begrenzt man für gewöhnlich mit strip_tags. > 3. Das Problem: > *************** > Wenn es nun keine _GET oder sonstwelche Variable gibt, kommt > es zu einem > Parse-Error in der htmlspecialchars Funktion. ^ Hmm, das verstehe ich nicht, foreach sollte bei leeren Arrays die Funktion nicht aufrufen. > Wenn eine _GET oder sonstwelche Variable nicht ein String > sondern ein Array > ist kommt es auch zu einem Parse-Error. > Die Extract-Funktion für Arrays möchte ich erst nach dem make_clean > verwenden. Kann man dann die Array-Inhalte injecten, weil die erst nach dem make_clean rausgeholt werden :o) ? > Für gute Verbesserungsvorschläge wäre ich sehr dankbar. 1. Mit dem Wissen um die möglichen Inhalte der Variablen diese prüfen. 2. Stefan Esser (http://security.e-matters.de/) zur Beratung einkaufen ;-) . Liebe Grüße, -johann Mayflower GmbH Raumpfleger
php::bar PHP Wiki - Listenarchive