Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Bezpieczny upload plików, przyjmowanie wybranych rozszerzeń
ave
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

Ostrzeżenie: (0%)
-----


Zamierzam prowadzić dla użytkowników możliwość uploadu plików na serwer, przy czym zalezy mi aby użytkownicy, niemogli wgrywać plików 'niebezpiecznych' np. skryptów php,i teraz pytanie jak najlepiej to zorganizowac
a) zrobić rozszerzeń dozwolonych jpg, bmp, mp3 itp...
b) wpis w .htaccessie ze jak plik ma inne rozszerzenie niz w/w to traktuje je jako text jest to mozliwe?
c) a+b;

Wydaje mi sie ze sam punkt a) wystarczy, jak sądzicie ?
moze jakie inne pomysły?

Ten post edytował ave 4.01.2006, 00:54:22
Go to the top of the page
+Quote Post
brachu
post
Post #2





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 13.04.2005

Ostrzeżenie: (0%)
-----


punkt a) powinien wystarczyc moim skromnym zdaniem winksmiley.jpg

pozdro


--------------------
www.tanieprogramy.edu.pl
www.zamkor.pl
Go to the top of the page
+Quote Post
dawijanii
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 3.02.2004
Skąd: from hell

Ostrzeżenie: (0%)
-----


Moim zdaniem najlepiej nadaje się sandbox czyli uploand do katalogu z poza witryny albo z taką regułką.

.htaccess

/~pliki/ Miejsce składowania pliku

Cytat
php_admin_flag engine Off

<Files ~ "^.*\.(gif|jpg|bmp|jpeg|jpeg)$">
    Order deny, allow
    Deny from all
</Files>


Dodatkowo odwołanie do katalogu poprzez skrypt z wyrażeniem regularnym który filtruje nazwy ^[A-Za-z0-9]\.(gif|jpg|bmp|jpeg|jpeg)$ to samo przy uploadzie pliku pozwoli w miare poczuć sie bezpiecznie na jakiś czas. Odwołanie do katalogu z danymi najlepiej zrobić poprzez mod_rewrite

[b]/sciagnij/[A-Za-z0-9]\.(gif|jpg|bmp|jpeg|jpeg)[b] sciezka do uploadu plików

Cytat
Rewriterule ([A-Za-z0-9]\.(gif|jpg|bmp|jpeg|jpeg)) sciegnij.php5?s=$1


is_uploaded_file

Dużo niedoróbek ale chyba sobie poradzisz winksmiley.jpg

Ten post edytował dawijanii 4.01.2006, 10:32:04


--------------------
Nie wiesz jak napisać życiorys zawodowy zajrzyj do portalu Pracy Cv list motywacyjny list motywacyjny to nie jest takie trudne ?
Go to the top of the page
+Quote Post
juke
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.01.2006

Ostrzeżenie: (0%)
-----


jeszcze dodaj mime-type winksmiley.jpg
Go to the top of the page
+Quote Post
ave
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

Ostrzeżenie: (0%)
-----


juke tak tak mime-type swoja droga
zainteresowalem sie mime_content_type ale jak sie okazalo niemam tego wkompilowanego w phpa wiec doinstalowalem to, lecz niedziaja tak jak powinno, mime type pokazuje tylko gdy jest text/plain, przy innych nic nie wyswietla sprawdzalem magic.mime i tam wszystko ok. Moze to wina tego ze php niezostal z tym skompilowany??

dawijanii
zbyteczne wydaje mi sie sprawdzanie typu pliku poprzez skrypt podczas kazdego jego wywołania jesli zrobie to juz na samym wstepie przy jego uploadzie i przyjme tylko te do ktorych bede mial pewnosc ze sa obrazkami lub plikami dzwiekowymi, niezamierzam dawać użytkownikowi możliwości zmiany rozszerzenia pliku, czyli wszystko co user wgra przejdzie przez walidacje

a do walidacji chce uzyć
sprawdzania mime_type z tablicy $_FILES['nazwa']['type'] przy wgrywniu, i na wszelki wypadek w .htaccessie definicje ze php,php5.asp itd sa trakowanie jak text/plain.
No i jesli uruchomie to jeszcze mime_content_type.

Wie ktos czy okreslanie $_FILES['nazwa']['type'] jest robione na podstawie magic.mime tak samo jak w przypadku mime_content_type ?

pozdrawiam
Go to the top of the page
+Quote Post
aleksander
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


http://forum.php.pl/index.php?showtopic=13...indpost&p=93126
Go to the top of the page
+Quote Post
ave
post
Post #7





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

Ostrzeżenie: (0%)
-----


aleksander ale tam nic niema, tylko sprawdzanie po rozszerzeniu ktore mi nie wystarczy.

nieudalo mi sie odpalic mine_content_type, jak juz pisalem dziala tylko dla text/plain, i pewnie nie jest to winna tego ze nie jest skapilowane z phpem, bo tak samo instalowalem mcrypt, ktory tez powinnien byc razem z phpem, a dziala dodany pozniej.

Wiec zostaje przy kontroli przy uploadzie, + sztywne przepisywanie rozszerzen, ktos wpisze wirus.exe.gif to ucina wsio po . zostawia wirus i dodaje .gif.

I chcialbym jeszcze dodac linike w .htaccessie ktora spowoduje ze wszystko oprocz bmp|jpg itp zostanie potraktowane jako text/plain. Wie ktos moze jak ?


Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:38