- Sicherheit: Wieviel besser ist es, das Lister-Verzeichnis dem PHP-Nutzer zu übereignen, anstatt die Rechte auf 757 zu setzen? Lässt sich dass sinnvoll nutzen? IST DER NUTZER IMMER "nobody/nogroup"? - Es sollte erst das Passwort geprüft und *danach* hochgeladen werden! - Pause nach Passworteingabe ist kein Sicherheitsgewinn, da das Skript einfach erneut aufgerufen werden kann. Lässt sich die Anzahl der Aufrufe aktiv begrenzen? - Erweiterung: Zugriff auf Unterverzeichnisse (im Moment wird bei 'show' & 'download' aber noch geprüft, ob sich die angeforderte Datei im selben Verzeichnis befindet!) Upload-Limit in Byte setzen Beschreibungen in Textdatei speichern Passwort für lesenden Zugriff (optional) /* * If true, the password is requested for up- AND download of files. * (The password has to be set for this, see installation.txt) * * Default: false */ define('REQUEST_PASSWORD_FOR_DOWNLOAD', false); Umbenennen von Dateien MIME-Types für Downloads mitschicken, so dass man z.B. Bilder direkt im Browser ansehen kann Systeminfo mit Werten von "post_max_size" und "upload_max_filesize" http://www.simonstenhouse.net/index.php?area=projects Passwort-Schutz: Man könnte das Passwort auch als Textdatei in das Upload-Verzeichnis legen. Ist das Verzeichnis sicher, ist auch das Passwort sicher, auch bei Fehlkonfiguration des Servers Verzeichnisrechte & htaccess analog zu Gallery2: http://codex.gallery2.org/Gallery2:Security#Short_Check_List ------------------------------- Eingetragen bei: http://www.php-resource.de/ http://resourceindex.com/ http://www.scripts.com/ ------------------------------- Sicherheits-Check! Die Datei darf nicht ausführbar sein -> Opt-In oder Opt-Out Lösung mit Extension-Liste (nicht gut, immer unvollständig) BESSERE SICHERHEITSLÖSUNG: Statt irgendwelche Dateichecks wird einfach der Inhalt der Datei direkt vom Skript gelesen und an den Browser übermittelt. Hochgeladene Dateien dürfen nicht direkt aufrufbar sein! http://www.acunetix.de/websitesecurity/php-security-4.htm http://lists.phpbar.de/pipermail/php/Week-of-Mon-20030915/001656.html http://lists.phpbar.de/pipermail/php/Week-of-Mon-20030915/001652.html ------------------------------- Größenprobleme: http://se2.php.net/manual/de/function.readfile.php#48683 Informationen zu PHP-Variablen post_max_size und upload_max_filesize anzeigen upload_tmp_dir ist sicherheitstechnisch ebenfalls interessant Sicherheit: Am Schluss noch einmal http://www.acunetix.de/websitesecurity/php-security-4.htm lesen Meta-Probleme wie "Upload von Schadcode, Ausführung durch ein anderes, unsicheres Skript auf demselben Server" beachten Auf jeden Fall auf Sicherheitsproblematik hinweisen! ====================================== Vereinfachung, .htaccess, etc. Kozept für die Vereinfachung: 1. Passwort wird über (reservierte) Datei "password.txt" definiert. Ist sie vorhanden, wird ein Passwort gebraucht, sonst nicht. 2. Am schönsten wäre: Hochgeladene Dateien wieder im selben Verzeichnis wie das Skript, das als einzige Datei ausführbar ist - funktioniert das mit htaccess? Idee: Irgendwas mit zum aktivieren von index.php und sonst Deny from all --> http://httpd.apache.org/docs/2.2/howto/htaccess.html#cgi --> http://aktuell.de.selfhtml.org/artikel/server/htaccess-faq/ --> http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch --> http://www.lrz-muenchen.de/services/schulung/unterlagen/regul/regul-14.html --> http://www.danielfett.de/df_artikel_regex#hnegativelookaheadsundlookbehinds --> http://www.drweb.de/php/regulaere-ausdruecke.shtml Funktoniert: # Set lister.php as index file DirectoryIndex lister.php # Deny access to all files Deny from all # Allow access access only for lister.php Allow from all --------------- Funktioniert fast, aber DirectoryIndex wird ignoriert: # Set lister.php as index file DirectoryIndex lister.php # Deny access to all files Order Allow,Deny # Allow access access only for lister.php Allow from all