Vinzenz Mai: Sicherheit von Dateiuploads

Beitrag lesen

Hallo,

Hier drängt sich wieder die Frage der Gefahr durch Injections auf, wenn man den "Stream" einer Datei in der Datenbank speichert.

wieso? Behandle die Daten kontextgemäß und Du hast kein Problem.

Bereits getestet habe ich das Hochladen von XML-Dateien. Eine XML-Datei mit folgendem Inhalt:

<?xml version="1.0"?>
<foo>
<image> ' SELECT * FROM somewhere-- </image>
</foo>

Passiert Problemlos sogar einen Test mit Dom::loadXML, da es ja valide ist.

ja und?

Da man klassischer Weise in einer XML-Datei nicht alle Anführungszeichen escapen sollte, steht man hier vor einem Problem, da das oben stehende SQL-Statement in einerm INSERT ausgeführt werden würde(!).

Unsinn. Es handelt sich hier um stinknormale Daten, die kontextgemäß aufbereitet werden. Ob das die entsprechenden Maskierfunktionen passend zum DBMS sind, oder ob man prepared Statements verwendet, das ist gleichgültig. Ordentlich behandelt, kann nichts passieren. Dem DBMS ist es völlig egal. XML-Daten sind keine andere Daten als sonstige Benutzereingaben. Sie müssen ganz genauso behandelt werden.

Wie handelt Ihr Datenstreams die als Blob gespeichert werden sollen?

wie sonstige Daten auch. Sie werden kontextgemäß behandelt. Es besteht *kein* Unterschied.

Freundliche Grüße

Vinzenz