Robert B.: Variablen absichern per mysqli_real_escape_string: Reicht das aus?

Beitrag lesen

Moin,

Die Daten kommen aus einem HTML Eingabefeld (input und textarea) und sollen in einer MYSQL-Datenbank gespeichert werden.

Sofern das ein normales input oder eine textarea ist, kommen die Daten also einem Reintext-Kontext in den SQL-Kontext. Da kannst du das SQL-Statement unter Verwendung von mysqli_real_escape_string zusammenbauen oder besser: Du verwendest prepared statements.

Ich möchte z.B., dass in der DB auch die echten Anführungszeichen (" oder ') und nicht die HTML-Zeichen (") gespeichert werden.

Die HTML-Entitäten sind nur im Textfeld, wenn eine Nutzerin sie dort einträgt. Es gibt aber neben den ASCII-Anführungszeichen auch noch „die ‚deutschen‘“ oder »die ›Gänsefüßchen‹« …

Ich bin mir unsicher, ob das ein Sicherheitsrisiko ist, wenn ich die Variable vor dem Speichern in der DB nur mit mysqli_real_escape_string sichere.

Bei der Verwendung der Escape-Funktion kann dir natürlich beim Zusammenbauen des Statements noch an anderer Stelle ein Fehler unterlaufen. Mit prepared statements kannst du zumindest für die einzufügenden Werte vorsorgen.

Viele Grüße
Robert