v1.1.1CE: newsletter.php: ungeprüfter Eintrag der Emailadresse in die DB

  • Hallo Leute, beim Testen unserer v1.1.1-Installation ist uns aufgefallen, dass bei der Newsletteranmeldung der angegebene String [B]ungeprüft[/B] in DB geschrieben wird. In weiteren Queries der newsletter.php wird ebenfalls der ungeprüfte Wert von $_POST['email'] oder $_GET['email'] verwendet.
  • Hi Folks, anbei ein echter Quick'n Dirty für das Problem. [B]Aber: Ich Noob - KEINE GARANTIE![/B] /newsletter.php Suche nach: [CODE]require_once (DIR_FS_INC.'xtc_validate_password.inc.php');[/CODE] und füge drunter ein: (PHP >= 5.2.0) [CODE]require_once (DIR_FS_INC.'xtc_validate_email.inc.php'); $error = false; if (isset($_GET['info_message'])) $info_message = $_GET['info_message']; if (isset($_GET['email'])){ $_GET['email'] = filter_input(INPUT_GET, 'email', FILTER_SANITIZE_EMAIL); $email_address = filter_var($_GET['email'] ,FILTER_VALIDATE_EMAIL ); } if (isset($_POST['email'])){ $_POST['email'] = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); $email_address = filter_var($_POST['email'] ,FILTER_VALIDATE_EMAIL ); } if ((isset($_GET['email']) || isset($_POST['email'])) && xtc_validate_email($email_address) == false) { $error = true; unset($_POST['email']); unset($_GET['email']); } if ($error !== false) xtc_redirect(xtc_href_link(FILENAME_NEWSLETTER, 'info_message=Die eingegebene eMailadresse ist nicht korrekt.')); [/CODE] PHP alert('Gute Güte'); bzw. urlencoded: domain.tld/newsletter.php?info_message=%3Cscript%20type=%22text/javascript%22%3Ealert(%27Gute%20G%FCte%27);%3C/script%3E[/CODE] wird zwar nicht ausgeführt (sollte "Gute Güte" per JS alerten), aber weitere Tests hab ich noch nicht gemacht. Ich poste das jetzt auch nur, weil ich nächste Woche eher wenig Zeit hab und mE ist die Lösung zumindest weniger schlimm ist, als die Eintragung beliebiger Strings in die DB. Hoffe es hilft ...