Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpiecznie uploadu plikow php
Forum PHP.pl > Forum > PHP
miro20
Jak w temacie , chcialem zrobic zabezpieczenie do uploadu na stronce aby nie mozna bylo wgrac php , z poczatku posluzylem sie mime_content_type , lecz pliki php widzi nawet jako text/plain , czego nie chcialem zabraniac teraz mysle o rozwiazaniu z explode "." i zeby ostatnia wartosc tablicy porownac czy czasem nie jest "php" jak zatem odwolac sie tylko do ostaniej wartosci w tablicy ? , chyba ze znacie jakies inne rozwiazania smile.gif
pyro
Najlepiej to zrobić tablicę z DOZWOLONYMI typami plików, a jak koniecznie ma nie być TYLKO php to:

  1. <?php
  2. $is_php = preg_match('|php[0-9]?|i', pathinfo($plik, PATHINFO_EXTENSION)) ? true : false;
  3. ?>
Spawnm
a co z np .phtml ? php działa i pod tym rozszerzeniem ... lepiej daj listę dozwolonych typów smile.gif
osl
jak wyżej, zwłaszcza, że apache można skonfigurować żeby dowolne pliki traktował jako php, chociażby inc...
bim2
Nie można po prostu przy uploadzie nazwać pliku nazwa.rozszerzenie_uploaded ? Lub cokolwiek zamiast tego uploaded?
pyro
Cytat(Spawnm @ 12.05.2009, 14:19:28 ) *
a co z np .phtml ? php działa i pod tym rozszerzeniem ... lepiej daj listę dozwolonych typów smile.gif


Racja zapomniałem o phtml ;x
bliitz
  1. <?php
  2. strtolower( strrchr( $file['form'][ 'name' ], '.' ) );
  3. ?>


Zwróci .php
pyro
Osobiście nie wiem dlaczego tylko php miałoby nie mieć możliwości wgrania, oprócz php można wgrać coś innego szkodliwego, np. asp, java czy jeszcze inne szmelce

// edit

dlatego wspomnialem zeby stworzyc tablice dozwolonych typow smile.gif
miro20
No racja nie wspomnialem o java itd , tylko dlatego ze tamte udalo mi sie zablokowac moze trochu w prowizoryczny sposob no ale lepiej kombinowac pierw samemu a pozniej pytac . Tablica tozwolonych plikow wygladala by tak
Kod
$allowedtypefiles=array(
            'txt' => 'text/plain',
            'pdf' => 'application/pdf',
            'doc' => 'application/msword',
            'rtf' => 'application/rtf',
            'odt' => 'application/vnd.oasis.opendocument.text',
            'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
        );


problem jest taki ze mime_content_type dla wgrywanych plikow php zwraca mi wartosc text/plain , i pozwala na uplaodowanie tych plikow
pyro
Sprawdzaj po rozszerzeniu pliku a nie MIME. Weryfikację MIME można łatwo ominąć.
miro20
Ok postaram sie to jakos wykombinowac znalazlemprzyklad na php.net.pl
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.