Zugriffsrechte beim Fileupload in PHP

Schau mal bei SelfHTML, speziell der Parameter accept. Dort solltest du Dateitypen einschränken können.
Danke, werde ich. Allein schon aus reiner Interesse, auch wenns bei meinem Problem wohl leider nicht hilft :(

Homer Simpson hat gesagt.:
Ansonsten würde ich vorschlagen das du dir eine kleine SQL Abfrage bastelst, die mitschreibt welcher User welche Datei hochlädt.

Habe ich bereits. Der Code dieser Funktion steht ein paar Posts weiter oben ;)
Trozdem danke für den Vorschlag.

Ich denke Dateitypen zu verbieten bringt nicht viel...

Da hast du wohl leider recht :D

Mein Vorschlag ist:

- Erstelle ein Ordner mit einem wirren Namen, z.B. 893kljklasdf5tokljma, diesem gibst du dann die Rechte 777.

- In diesem Ordner legst du eine htaccess Datei rein die es verbietet jedem den Inhalt des Ordners aufzurufen.

- Wenn du jetzt die Dateien den Usern zugänglich machen willst dann erstellst du dir eine php Datei die mit der Datenbank komuniziert und von dort den Dateinamen bekommst. Das könnte dann so aussehen

http://www.tld.de/download.php?id=12

Die PHP-Datei gibt die hochgeladenen Dateien entweder zum Download bereit oder du lässt es binär geöffnen... also bei eine hochgeladenen PHP-Datei wird dann der Quellcode erscheinen.

Die Dateien aus der DB auslesen und sie dann per PHP zum Download zur Verfügung zu stellen, sollte kein großes Problem werden, das geh ich heute abend gleich mal an.

Aber wenn ich den upload/download Ordner mit dem wirren Namen ^^ dann mit einer htaccess Datei schütze, die jeden Zugriff verbietet, kann ich dann überhaupt noch Dateien in den Ordner schreiben?
 
htaccess Zugriff hat nichts mit dem CHMOD zu tun.

In der htaccess einfach
Code:
Order deny,allow
Deny from all
reinschreiben und schon kommt keiner mehr an die Daten von außen ran. PHP jedoch kann sehr wohl Daten in den Ordner schreiben bzw. lesen und auch ausgeben
 
Das mit dem .htaccess ist doch auch nur 'nen dreckiges workaround. Das eigentliche Problem, dass Leute irgendwelchen Code auf den Server schleusen können löst das nicht. Und das ist auf jeden Fall 'nen riesen Sicherheitsrisiko.

Check doch einfach, wann die Dateien erstellt / geändert wurden, und dann checkste in den Logfiles, was zu dem Zeitpunkt für HTTP Requests angekommen sind. Wenn du da nix findest, maulste deinen Provider an und sagst denen, die sollen ihre Server-Config mal auf Vordermann bringen.
 
onkelyves: Das stimmt doch überhaupt nicht! Wenn du dir mal die Spam-Datei angeschaut hättest dann würdest du feststellen das eine PHP-Datei hochgeladen und dann ausgeführt wurde.... sobald er das Ausführen der Dateien unterbindet wird das Problem auch gelöst sein....
 
erstell mal eine Datei mit dem Inhalt
PHP:
<?php

phpinfo();

?>

und guck da mal nach open_basedir, wenn dort no values steht würde ich mit ernst Hafte sorgen machen und einen richtig Hoster nehmen, oder den verklagen, wegen unterlassen der Sicherheit...

Gruß
Gunah
 
onkelyves: Das stimmt doch überhaupt nicht! Wenn du dir mal die Spam-Datei angeschaut hättest dann würdest du feststellen das eine PHP-Datei hochgeladen und dann ausgeführt wurde.... sobald er das Ausführen der Dateien unterbindet wird das Problem auch gelöst sein....
Dann wird das Problem gelöst sein, dass einer 'ne eigene PHP-Datei ausführt, aber das eigentliche Problem, dass ein unbefugter Dateien hochladen kann löst das nicht. Der könnte z.B. den kompletten Account zumüllen. Oder hab ich hier 'nen Brett vorm Kopp? Wenn schon einer in 'nem Verzeichnis schreibrechte hat und schonmal die Möglichkeit hatte, da Code auszuführen, wird ich alles daran setzen zu gucken, wo er die Schreibrechte herhat.
 
onkelyves: Du verstehst nicht, der Spammer kann nur dann Dateien hochladen wenn
1. der Hoster mist gebaut hat und andere Seitenbetreiber auf die Ordner vom ihm zugreifen können.
oder
2. er es schaft die Dateien in den temporären Ordner zu bekommen und dann in die "download" Order zu verschieben.

Meines Erachtens lädt der Spammer eine PHP-Datei hoch, führt diese dann aus. In der PHP-Datei könnte ein Uploadformualar sein das dann wie gehabt Dateien hochlädt.
 
htaccess Zugriff hat nichts mit dem CHMOD zu tun.

In der htaccess einfach
Code:
Order deny,allow
Deny from all
reinschreiben und schon kommt keiner mehr an die Daten von außen ran. PHP jedoch kann sehr wohl Daten in den Ordner schreiben bzw. lesen und auch ausgeben

Danke für den Tipp.
Ich habe die .htaccess Datei erstellt und in meinen Download Ordner gelegt. Der Ordner hat jetzt einen wirren Namen und um die Downloads bereit zu stellen ruf ich jetzt nicht mehr mit PHP den Ordner auf und geb in einer Schleife den Inhalt des Ordners aus, sondern verwende die Dateinamen in der Logtabelle und bastel daraus den Downloadlink.

Wär zu überlegen ob es nicht vieleicht sauberer wäre eine eigene Tabelle für die Downloads zu erstellen. Auf der einen Seite hätte man dann zwar eine Redundanz, auf der anderen Seite könnte man aber alte Uploadlogs löschen, ohne Auswirkungen auf die Downloads zu haben.
Aber das ist jetzt vorerst mal nebensächlich...

erstell mal eine Datei mit dem Inhalt
PHP:
<?php

phpinfo();

?>

und guck da mal nach open_basedir, wenn dort no values steht würde ich mit ernst Hafte sorgen machen und einen richtig Hoster nehmen, oder den verklagen, wegen unterlassen der Sicherheit...

Gruß
Gunah

Unter open_basedir sind unter Local Value Pfade gepflegt. Bei der Master Value Spalte steht no value.
Müsste dort auch was stehen und mein Anbieter baut also Mist, oder ist das alles ok so?



Ich denke mein eigentliches Spamm Problem sollte durch die .htaccess Datei und die neue Funktion inzwischen gelöst sein.
Aber wie sich im Laufe des Threats heraus gestellt hat, habe ich ja anscheinend ein viel größeres Problem als ein wenig Spamm ^^

Sobald ich einem Ordner die Rechte 777 verpasse geht das Spiel wieder von vorne los. Was würdet ihr tun? Meint ihr ich soll den Anbieter anschreiben bzw. meint ihr das bringt überhaupt was? Oder kann der auch nichts ändern und die Problematik liegt an einer ganz anderen Stelle?

Gruß waldjunge
 
Zurück