Autor Zpráva
gardener
Profil
Zdravím
Vytvořil jsme si jednoduhý skript na omezení nahrávání nežádoucích souborů na web, ale netuším jaký MIME typ označuje napříkald PHP skripty?
Netuší prosím někdo?

A ještě jeden dotaz, na které souboru by si měl majitel dát obzvláště pozor aby se nadaly nahrát(určitě PHP a spustitelné soubory) ale zdali je ještě něco dalšího na co si dát pozor a pokud možno proč?

Díky za každou radu...
Jan Tvrdík
Profil
gardener
1. Nelze použít mime typ poslaný prohlížečem (lze snadno podvrhnout)
2. Je potřeba zakázat ty koncovky, které server parsuje.
3. Zkus si přečíst Diskuse: zakázání parsování php
4. Při správném zacházení (tzn., že je nepůjde spustit) není problém povolit upload i PHP souborů
krteczek
Profil
Doporučuji použít podobnou strategii jakou jsem navrhnul ve výše zmíněném odkaze: Vytvořit si seznam koncovek souborů a k nim povolené mimetypy, třeba tak jak to řeším v Texyle jak je řešena uploadovací třída najdeš tady: http://code.google.com/p/texyla/source/browse/trunk/texyla/php/ajaxupload.php
Mastodont
Profil
gardener
Dobrá adresa: http://blackhole.sk/topicupload-suborov-v-php-nebezpecne-gif-obrazky
Leo
Profil
"Doporučuji použít podobnou strategii jakou jsem navrhnul ve výše zmíněném odkaze: Vytvořit si seznam koncovek souborů a k nim povolené mimetypy"

A jak ty mime-typy pro uploadovany soubor zjistujete? Leo
krteczek
Profil
Leo: nahlédnutím na druhý můj odkaz byste zjitil že takhle:
                        // zjištění MimeTypu souboru
                        if(class_exists('finfo')) {
                                $finfo = new finfo();
                                $this->mimeType =  $finfo->file($_FILES[$files]['tmp_name']);
                        } else {
                                $this->mimeType =  mime_content_type($_FILES[$files]['tmp_name']);
                        }



EDIT: je pravda že text je v předešlém příspěvku dvojznačný. Neměla tam být dvojtečka, ale tečka a další text na novém řádku nebo odstavci...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0