Inital commit

This commit is contained in:
Tilman
2011-10-26 09:16:58 +02:00
commit 66a90a0669
17 changed files with 2673 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
- 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 <IfDefine> 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
<FilesMatch ".">
Deny from all
</FilesMatch>
# Allow access access only for lister.php
<Files lister.php>
Allow from all
</Files>
---------------
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
<Files lister.php>
Allow from all
</Files>