Datenupload besser in Datei oder Datenbank
Nils S.
- datenbank
Hallo alle miteinander,
ich mache gerade eine Homepage wo User Dateien hochladen müssen/können. Meist XML / XSL / TXT Dateien.
Habe daher ein Inputfeld mit dem Typ File erstellt mit der der User eine Datei auswählen kann.
Nun stellt sich für mich die Frage was sicherer ist. Ist es besser wenn ich die Datei dann mit einem copy Befehl auf den Server kopiere und die nötigen Schreibrechte setze oder ist es besser wenn ich den Inhalt der Datei in die Datenbank schreibe?
Habe bedenken das er dann irgendwie PHP oder mySQL Code einschleussen kann und dann irgendwas anrichtet wenn ich die Daten ausgeben lasse...
Vielen Dank für eure Hilfe
Grüße Nils
Ich würde nicht direkt in die DB schreiben.
Anfällig ist das natürlich für eine SQL-Injection.
Da du ja anscheinend mehrere Dateitypen akzeptieren musst, die zudem noch jeden Inhalt enthalten könnnen, hast kaum eine Chance, den Inhalt dieser Dateien auf Validität zu überprüfen. Dadurch kann man eigentlich x-beliebeigen Code an die Datenbank durchgeben.
Ich würde eine Referenz auf die Datei in der DB speichern, nachdem du sie verschoben hast.
Und immer schön merken: All input is evil :)
Gruß
Ok. Vielen Dank für die Antwort. Hat mir sehr weiter geholfen.
Grüße
echo $begrüßung;
Ich würde nicht direkt in die DB schreiben.
Anfällig ist das natürlich für eine SQL-Injection.
Gegen SQL-Injection hilft das ordnungsgemäße Maskieren der Sonderzeichen der jeweiligen Datenbank. Für PHP und MySQL hilft dabei mysql_real_escape_string(), wobei vorher noch gegebenenfalls die Auswirkungen des Magic-Quotes-Mechanismus entfernt werden müssen.
Dass in schlecht geschriebenen Scripten SQL-Injection möglich ist, ist kein Argument gegen eine Speicherung bestimmer Daten in einer Datenbank.
echo "$verabschiedung $name";