Tom: Steiche GET, setze POST, lese Artikel zur Sicherheit (XSS)

Beitrag lesen

Hello Pizza,

das habe ich mir schon fast gedacht...
Es gibt eben immer noch ein "Anders"

<form method="post" action="index.php?content=send_mail">

echo "<pre>\r\n";
    echo htmlspecialchars(print_r($_GET,1));
    echo "</pre>\r\n";

Was hat jetzt die POST-Methode der Datenübertragung mit den angezeigten GET-Variablen zu tun?

Richtig! Gar nichts.

Schreibe stattdessen

echo "<pre>\r\n";
     echo htmlspecialchars(print_r($_POST,1));
     echo "</pre>\r\n";

und Du wirst die Post-Parameter zu Gesicht bekommen. Und diese Methode ist dann auch brauchbar, bei PHP-Standardeinstellungen einige Hundert Kilobytes Daten zu übermitteln.

Aber

<p><label>Name:<br><input type="text" name="Name" value="<?php echo $_GET['Name']; ?>"></label</p>

ist immer noch eine tödliche Sicherheitslücke für Cross-Site-Scripting, auch wenn Du $_GET gegen $_POST austauschst. Bitte lies Dir hierzu den Artikel
http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel
durch, der Dir zeigen soll, dass man aus fremden Quellen erhaltene Daten nicht einfach ungeprüft und unbehandelt wieder ausgeben darf.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de