Normales Thema Sicherheit mit mysqli_real_escape_string (Gelesen: 70 mal)
Jopii
Forum Administrator
*****
Offline


I love YaBB 2.6.12!

Beiträge: 167
Standort: Land Of Confusion
Mitglied seit: 01.04.2024
Geschlecht: männlich
Sicherheit mit mysqli_real_escape_string
29.01.2026 um 21:59:14
Beitrag drucken  
Mittlerweile gewöhne ich mir meine eingefleischten Fehler ab und schreibe auch PHP-Code etwas besser - hoffentlich.

Die prepared statements habe ich bereits verstanden, nun ist es aber auch wichtig, dass ich die Erfassung von Daten in eine Datenbank gegen kriminelle Absichten schütze. Eine sql-injection ist nicht wirklich zu wünschen, daher werde ich mich auch hier vorsehen.

Ein einfache insert-Statement sieht wie folgt aus:

Code (PHP)
Alles auswählen
$idvorgang = $_REQUEST['n_idvorgang'];
$telefon   = $_REQUEST['n_telefon'];
$datum     = $_REQUEST['n_datum'];

$sql = mysqli_query($db, "INSERT INTO $tblname042 (id_vorgang, telefon, erfasst) VALUES ('$n_idvorgang', '$n_telefon', '$n_datum')"); 



Aus einem Formular werden Eingabe gelesen und in eine Tabelle erfasst. Bei dieser sehr effektiven, aber auch einfachen Art und Weise der Datenerfassung kann es leicht zu sql-injections kommen. Dieses gilt es zu verhindern. Der nachfolgende Code nutzt den Schutz davor:

Code (PHP)
Alles auswählen
$idvorgang = mysqli_real_escape_string($conn, $_REQUEST['n_idvorgang']);
$telefon   = mysqli_real_escape_string($conn, $_REQUEST['n_telefon']);
$datum     = mysqli_real_escape_string($conn, $_REQUEST['n_datum']);

$sql = "INSERT INTO $tblname042 (id_vorgang, telefon, erfasst) VALUES (?, ?, ?);";

$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
    echo "SQL error";
}
else {
    mysqli_stmt_bind_param($stmt, "sss", $idvorgang, $telefon, $datum);
    mysqli_stmt_execute($stmt);
}
 



Mit diesem Code werden die variablen Daten über mysqli_real_escape_string gegen Codeeinträge geschützt. Einem Hacker wird es so wesentlich schwerer gemacht, eine Webseite über eine sql-injection zu hacken.

Auch hier ist die vermehrte Code vielleicht als Nachteil zu sehen. Aber die Sicherheit geht vor, daher werde ich künftig meinen Code immer so aufbauen und bestehende PHP-Dokumente entsprechend korrigieren.
  

The Administrator - Cheffe von Ganzes
Zum Seitenanfang
IP gespeichert