"káros kiterjesztések"

"káros kiterjesztések"
2007-02-01T09:23:18+01:00
2007-02-01T20:44:06+01:00
2022-11-03T04:26:09+01:00
MyR
Sziasztok,

Van egy fájlfeltöltő scriptem, és még a fájl feltöltése előtt ki szeretném szűrni azokat a fájlokat, amelyekre majd a feltöltést követően hivatkozva esetleg kárt tehetnek a szerveren. Tehát nem engednék feltölteni pl. PHP, CGI, és egyéb kiterjesztésű fájlokat. Egy ilyen "kiterjesztés-gyűjteményre" lenne szükségem. Nem a MIME típusra, mert azt a böngésző adja, azaz nem a $_FILES['userfile']['type'] segítségével, hanem majd a $_FILES['userfile']['name']-ből substringgel levagdosom a kiterjesztéseket. (PHP és Perl futtatására van lehetőség a szerveren.)
Mutasd a teljes hozzászólást!
SZVSZ van egyszerűbb megoldás. Fogod a feltöltendő fájlt, és átnevezed egy biztosan nem futtathatóra, majd valahova lemented, hogy milyen néven melyik és milyen típusú fájl van.

Pl.:
Fel akarja tölteni a crackyourserver.php-t? Tegye.
Amikor feltöltöd, akkor kap egy szép nevet: 0001
Így mented le a szerver könyvtárába, aminek mondjuk legyen a neve _data, majd mondjuk egy Text fájlba letárolod, hogy a 0001 fájl eredeti neve: crackyourserver.php a típusa: application/octet-stream.

Ezután ő hiába írja be a böngészőbe, hogy http://szerver/_data/crackyourserver.php az nem fog lefutni, ha esetleg valami csoda folytán megpróbáljha a http://szerver/_data/0001-et így sem fut, a te kódod sosem értelmezi a fájlt scriptként, így az sosem fogja lefuttatni.

Ezután már csak egy olyan php fájlt kell legyártanod, ami ha ezt a fájlt valaki le akarja tölteni, akkor kiadja neki letöltésre.
Pl.:
<?php header("Content-type: application/octet-stream"); header('Content-Disposition: attachment; filename="crackyourserver.php"'); readfile("_data/0001"); ?>

Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd