Gute Morgen,
versuche gerade Sicherheitslücken in einem Array zu schließen und möchte vor der DB-Speicherung die eingegeben Daten per mysqli_real_escape_string sicher machen. Jetzt bin ich mir bei einer Array-Funktion jedoch nicht sicher, ob dies an der richtigen Stelle von mir eingebracht wurde (im zweiten Block in der if-Bedingung im Code) oder ob ich dies nicht schon vorher im ersten Block bei parse_str hätte machen sollen. Zwei Fragen nun: 1. Was wär hier die optimale Lösung? 2. Und reicht der
mysqli_real_escape_string hier aus oder sollte man noch htmlspecialchars bzw. htmlentities mit einbrigen um SQL-Injections zu vermeiden?
versuche gerade Sicherheitslücken in einem Array zu schließen und möchte vor der DB-Speicherung die eingegeben Daten per mysqli_real_escape_string sicher machen. Jetzt bin ich mir bei einer Array-Funktion jedoch nicht sicher, ob dies an der richtigen Stelle von mir eingebracht wurde (im zweiten Block in der if-Bedingung im Code) oder ob ich dies nicht schon vorher im ersten Block bei parse_str hätte machen sollen. Zwei Fragen nun: 1. Was wär hier die optimale Lösung? 2. Und reicht der
mysqli_real_escape_string hier aus oder sollte man noch htmlspecialchars bzw. htmlentities mit einbrigen um SQL-Injections zu vermeiden?
PHP:
<?php
if (isset($_REQUEST['action'])) {
if ($_REQUEST['action'] == "contact_form_request") {
$ourMail = "[email protected]";
$required_fields = array("Name", "Email", "Nachricht");
$pre_messagebody_info = "";
$errors = array();
$data = array();
parse_str($_REQUEST['values'], $data);
//check for required and assemble message
if (!empty($data)) {
foreach ($data as $key => $value) {
$name = mysqli_real_escape_string(trim($key));
if (in_array($name, $required_fields)) {
if (empty($value)) {
$errors[$name] = "Bitte " . $name . " eingeben";
}
}
} //...
?>
Zuletzt bearbeitet von einem Moderator: