Verbotene Dateien finden & löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abgespeichert
beitrag
cab
datei
eins
endung
falsch verstehe
gedacht
gel
inhalt
meldung
methode
midi
mpg
recht
unerlaubte datei
verbotene datei
verloren gehen
verzeichnis
wmf
-
Hi,
ich hab gerade so ein Script geschrieben, mitdem man verbotene Dateien beim eigenen Webspace (hier bei Lima) finden kann, die dann gel?scht werden, sodass man keine Probleme bekommt. Die Dateien werden zwar gel?scht, aber der Inhalt wird in base64 verschl?sselt und wird im selben Verzeichnis mit der Endung .txt abgespeichert, sodass die Dateien nicht verloren gehen.
Ich hab als verbotene Dateien alle Endungen, die im FAQ sind, benutzt.
Wichtig ist jedoch, dass alle Verzeichnisse die ben?tigten Rechte haben, sonst k?nnen die Datein nicht gel?scht werden.
Am besten ist, man h?ngt das Script mit include() in eine Datei, die viel aufgerufen wird.
Ich denke zwar nicht, dass man ausversehen verbotene Dateien hochladet, aber vielleicht kommt mal eins mit zip oder so ausversehen auf den Server.
Wenn eine Datei nicht gel?scht werden kann, dann wird eine Meldung angezeigt.
Wie findet ihr meine Idee & Script?
Das Script:
function get_files($dir = "./") { $scan_result = array(); $dir = (substr($dir,-1) != "/")?"$dir/":$dir; $dh = opendir("$dir"); while (($object = readdir($dh)) !== false) { if ($object !== "." && $object !== "..") { if (is_dir("$dir$object")) { $scan_result = array_merge($scan_result,get_files("$dir$object")); } else if (is_file("$dir$object")) { $scan_result[] = "$dir$object"; } } } closedir($dh); return $scan_result; } $banned_extensions = explode("|","bmp|avi|midi|mpeg|mpg|mp3|wav|wmv|wma|mov|rar|zip|ace|tar|exe|lzh|tar.gz|tar.bz2|gz|bz2|jar|psd|cab|mid|zi0|gz|torrent|dem|w3g|w3x|wmf|dll|ogg|bin|psp|mpeg|tgz|ram|rmvb"); $files = get_files(); foreach ($files as $file) { $ext = strtolower(end(explode(".",basename($file)))); if ( in_array($ext,$banned_extensions) ) { $fc_base64 = base64_encode(file_get_contents($file)); $new_file = "$file.txt"; @chmod($file,0777) if (!@unlink($file)) { print "<br /><b>$file konnte nicht gelöscht werden!</b>"; } else { if (@touch($new_file)) { @chmod($new_file,0777); $fp = fopen($new_file,'w'); fputs($fp,$fc_base64); fclose($fp); } } } }
mfg,
hr
Beitrag ge?ndert am 24.12.2005 00:31 von heavyraptor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also das script funktioniert, ist eine gute Idee, so muss man nicht immer von hand durchsuchen, welche Datei nihct erlaubt ist!
Das script funktioniert, bei mir wurde keine Unerlaubte Datei gefunden, hab es so umgeschrieben, das es die Uerlaubten Dateien anzeigt. -
http://www.lima-city.de/faq.php :
Ebenso sind alle nichtaufgef?hrten Archivformate sowie s?mtliche Methoden um Dateien zu tarnen, verschl?sseln o.?. ohne vorherige Information eines Knights/des Admins ebenso verboten!
Daran sollte man aber auch denken...
Au?erdem wundert es mich, dass ihr ein Script dazu ben?tigt. Denn man sieht und wei? doch eingetlich, welche Dateien man auf dem Server speichert?!
MfG Lucas -
@ Lucass schonmal an uploadscripts auf der seite gedacht?
und da kann durch User der seite alles m?gliche auf die Seite kommen -
@ Lucass schonmal an uploadscripts auf der seite gedacht?
und da kann durch User der seite alles m?gliche auf die Seite kommen
*mal_wieder_vom_Stuhl_fall*
Das sollte man gef?lligst im Upload Script ?berpr?fen und nicht erst, wenn die Dateien (unter anderem auch PHP Dateien) auf dem deinem Webspace liegen...
MfG Lucas -
@lucas9991:
Ja, du hast recht, das dieses Script eigentlich nicht n?tig ist. Aber wie schon erw?hnt wurde, durch uploadscripts oder in zip-dateien, k?nnte mal eine Verbotene Datei sein. Auch z.B. bei Scripten, die man von einer Homepage runterladet. Die haben immer ?fters Verbotene Dateien drin.
Wegem verschl?sseln: Stimmt, du hast recht. Aber eigentlich wird das da in meinem Script ja gar nicht gemacht. Im FAQ steht, dass man Dateien nicht tarnen darf, und das heisst doch, dass Dateien z.B. dann so heruntergeladen wereden, sodass sie als *.bmp oder so anerkannt werden, obwohl die Datei als txt gespeichert ist. Also ist mein Script ok, wenn ich das nicht falsch verstehe.
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage