Mysqli abfrage - thema sicherheit......

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

klausi89

Erfahrenes Mitglied
Hallo ich bin neu im umgang mit mysqli und möchte gerne wissen wie es mit meinem Code mit der sicherheit steht

Sicher nicht gut, ich mache folgende Datenbankanfrage:

PHP:
## Select Databases
$sqlconfig = "SELECT * FROM config";
$data = $conn->query($sqlconfig);
$config = $data->fetch_array(MYSQLI_ASSOC);

dadurch kann ich nun auf meiner Seite mit Variablen Daten abfragen - z.bsp.
Code:
echo $config['title'];

könnte mir bitte einer sagen ob das so überhaupt sicher ist und wenn nicht wie könnte das aussehen.
mit prepared statments vielleicht. Bitte um Hilfe.....

Danke schon mal
 
Hi,

Hier muss man zwei Teile unterscheiden.
  1. Deine Datenbankabfragen
  2. Die Ausgabe von Daten auf der Seite
Der erste Teil sieht gut aus, hier brauchst du keine Prepared Statements. Warum? Weil du keinerlei Benutzereingaben in dein Statement aufnimmst. Du schickst einen konstanten String an die Datenbank, der Benutzer hat hierauf keinen Einfluss.
Prepared Statements brauchst du nur, wenn du potenziell unsichere Eingaben an die Datenbank schicken willst (z.B. bei INSERT, UPDATE, DELETE, aber auch SELECT...WHERE wenn du filtern willst)

Der zweite Teil betrifft XSS und hier könnte ein Benutzer bösen Code einschleusen. Die Faustregel ist hier, dass alle Daten die aus einer anderen Quelle kommen (z.B. aus der Datenbank) grundsätzlich escaped werden. Hierzu bietet sich zum Beispiel htmlspecialchars oder htmlentities an. Diese beiden Funktionen kannst du verwenden, wenn die Daten innerhalb eines HTML-Dokumentes angezeigt werden soll. Wenn du z.B. eine JSON-API baust, dann musst du die Daten anders escapen (z.B. so oder gleich per json_encode). Gleiches gilt auch für XML.

Grüsse,
BK
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück