Formular Upload-feld = Sehr Hoch Sicherheitsrisiko
Autore: Alexandre D.
Visite 2759,
Followers 1,
Condiviso 37
Der nächste Punkt bezieht sich auf die Sicherheit!
Wenn man die Funktion bzw. das Feld "UPLOAD" in einem Formular einbindet,
werden die hochgeladenen Dateien DIREKT auf das ROOT der Webseite hochgeladen und nicht auf einen bestimmten vorausgewählten Ordner.
Das 2. Problem liegt darin, dass alle Dateien hochgeladen werden können, das heißt, wenn einer eine PHP-Datei mit einem komischen Kode hochlädt, fährt der Server zur Hölle und kommt nicht mehr zurück...
Postato il
Autore
...Ich beziehe mich auf das Dateiformat bzw. auf die Dateiendung.
Z.B. ein kleiner Versuch wäre das Hochladen von der Datei
"info.php"
Ein großerer Versuch wäre z.B das Hochladen eines PHP-Mail-Skripts, der beim Aufruf SPAM-Mails zuschickt...
Waahhhhnsinnnn...
Autore
Wenn ich mich nicht verwirre, man könnte zunächst wie folgend das Risiko um 50% minimieren (bis Incomedia sich endgültig darum kümmert... ):
mail-skript.php (Verbindung mit Datenbank):
WO:
$storage = new imDatabase($settings['imEmailForm_9_1']['db_host'], $settings['imEmailForm_9_1']['db_name'], $settings['imEmailForm_9_1']['db_username'], $settings['imEmailForm_9_1']['db_password'], $settings['imEmailForm_9_1']['db_table'], $settings['imEmailForm_9_1']['general']['dir']);
SOLL:
$storage = new imDatabase($settings['imEmailForm_9_1']['db_host'], $settings['imEmailForm_9_1']['db_name'], $settings['imEmailForm_9_1']['db_username'], $settings['imEmailForm_9_1']['db_password'], $settings['imEmailForm_9_1']['db_table'], $settings['imEmailForm_9_1']['general']['dir/MeinUploadVerzeichnis']);
...es gibt aber 2 anderen Möglichkeiten für die Skripts, wo ich kein "['general']['dir']);" finden kann...
ich kann dir nicht folgen?
Wo siehst du die Datei welche hochgeladen wurde!
Autore
Auf "http://meinserver_de/"
Autore
...es sollte z.B. auf "http://meinserver_de/MeinUploads" hochgeladen werden,
damit mehr Ordnung und Sicherheit geschaffen wird...
der email Anhang wird per Email verschickt und nicht in deinem root gespeichert... also was machst du jetzt genau!?!?
hier kann man vernünftig reden
http://unofficialwsx5.de
Autore
hmmm...komisch... ich habe sowohl einen Lebenslauf als auch ein Bild hochgeladen.
Als Ergebnis werden beide Dateien sowohl in die Datenbank als MEDIUM BLOB BINARY gespeichert ALS AUCH auf "http://meinserver_de/" hochgeladen...
Datei-Änderungen habe ich keine gemacht...
Wart, ich bestätige es wieder... und genau was ich gesagt habe:
Beide Dateien sind auf "http://meinserver_de/" hochgeladen, die Namen wurden jedoch geändert... Die Dateien sind auch per E-Mail angekommen und... in die Datenbank gespeichert worden
z.B.: Lebenslauf_10122120.jpg ;)
Ok, ich nehme zurück was ich wegen der Sicherheit gesagt habe, da die Dateien-Namen geändert wird. Aber sie werden trotzdem auf "http://meinserver_de/" gespeichert...
Autore
...nein, sorry, die Dateien sind DOCH nicht per E-Mail angekommen...
Autore
Ok, die Dateien werden im Server hochgeladen weil sie nicht als MEDIUM BLOB BINARY in der Datenbank gespeichert werden, wie ich geändert habe, sondern als TEXT (des Verzeichnis)... Da muss ich nur noch das Upload-Verzeichnis ändern...
das führt zu nix....
Autore
Moin, moin...
Sowohl meine deutsche Sprache als auch meine logischen Gedanken waren gestern Nacht um die Uhr etwa verwirrt... Vielleicht immer noch
In Frage steht jetzt, wie man die PHP-Skripten ändern kann, damit die Dateien
in einem bestimmten Verzeichnis gespeichert werden, wenn man die Option:
"Datenversand an eine Datenbank"
an Objekt E-Mail-Formular auswählt.
Es wird aber immer wieder vergessen, dass Änderungen an Dateien die durch X5 erzeugt werden wieder überschrieben werden, spätestens dann, wenn ich Änderungen am Formular duchführe.
Warum suchst Du Dir nicht ein Script im Netz, dass Deine Anforderungen erfüllt, ev. ähnlich hier:
http://www.x5forum.home-wiekau.de/fm_kontakt-formular.php
Das Thema Datenbank wird ja wohl nicht etwa beim Kontaktformular eine wichtige Rolle spielen, da dort soweiso nur Verweise letztendlich drin stehen.
Autore
Mein Problem ist nicht mehr das Skript, sondern nur noch die Einzelheiten
Und ja, ich weiß schon was es bedeutet, immer wenn man sich irgendwelche Änderungen an X5 vornimmt, die Skripts danach nochmal entsprechend anpassen zu müssen.
Deswegen suche ich mir endlich etwas TOTAL automatisiert
Das stimmt (leider) nur beschränkt:
Je nach Serverkonfiguration bekommt der Besucher beim Aufruf einer nicht existierenden Datei entweder eine Fehlerseite oder den Inhalt des Dir zu sehen.
Somit bietet eine Wortergänzung keinen Schutz.
Ein Wechsel des Zielverzeichnisses am Server macht nur dann Sinn, wenn dieses von aussen nicht erreichbar ist.
Somit bleibt eigentlich nur die Beschränkung der Dateien auf *.zip...
Autore
ok, ich meine Folgendes:
Auch wenn man
"Datenversand an eine Datenbank"
an Objekt E-Mail-Formular auswählt,
die Dateien, sollten jedoch auf
http://meinserver_de/files
hochgeladen werden (das meinte ich!)
und nicht direkt auf
http://meinserver_de/
wo sich alle Dateien der Webseite befinden
Manfred ist hier mehr auf das Thema Sicherheit eingegangen...
Ich verstehe schon Dein Problem, legt man sich einen Blog an, kann man auch den Anlageort der Kommentare festlegen, Du willst es für die Anhänge.
Autore
ja...
Das mit der Sicherheit hatte ich leider übersehen.
Ich dachte, man lädt z.B. die Datei
"Lebenslauf.doc"
übers Formular hoch und die Datei behält ihren Name. Das habe ich falsch gedacht!
Die Datei erhält einen neuen Zusatz, z.B.
"Lebenslauf_10122120.doc"
und dadurch wird verhindert, dass jegliche Serverangriffe stattfindet. Gute Arbeit.