Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jakie zabezpieczenie uploadu?
iVorIus
post 13.07.2010, 21:23:55
Post #1





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Witam,
przeczytałem trochę o zabezpieczeniu uploadu przed skryptami/atakami, ale nie jestem pewien, które wybrać. Pytam więc Was, jakie skuteczne zabezpieczenia stosujecie?

Wywnioskowałem, że najpopularniejsze sposoby to użycie getimagesize, ale jestem ciekawe Waszych opinii.

Pozdrawiam.

Proszę o pomoc.

Ten post edytował iVorIus 13.07.2010, 13:45:50


--------------------
Chcieć to móc, lecz trudnością jest chcieć, nie móc.
Go to the top of the page
+Quote Post
wookieb
post 13.07.2010, 21:31:46
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Aktualnie najlepszym zabezpieczeniem jeżeli chodzi o wykrywanie typu pliku to http://pl.php.net/manual/pl/book.fileinfo.php


--------------------
Go to the top of the page
+Quote Post
kapuch
post 13.07.2010, 21:32:42
Post #3





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


http://mijagi.vot.pl/index.php/2009/08/bez...-uploadu-w-php/

Mysle ze pod tym linkiem, temat jest dosc powaznie rozkminiony winksmiley.jpg

EDIT:
No bez kitu, drugi raz (na dwa) zostalem uprzedzony o sekundy, a temat wisial bez odpowiedzi chyba z 20min smile.gif
Chyba zaczne grac w te szachy...a co!

Ten post edytował kapuch 13.07.2010, 21:34:29


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
wookieb
post 13.07.2010, 21:36:15
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(kapuch @ 13.07.2010, 22:32:42 ) *
Mysle ze pod tym linkiem, temat jest dosc powaznie rozkminiony winksmiley.jpg

Na pewno został w nim źle omówiony właśnie temat MIMETYPE smile.gif


--------------------
Go to the top of the page
+Quote Post
kapuch
post 13.07.2010, 21:40:45
Post #5





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


Cytat(wookieb @ 13.07.2010, 22:36:15 ) *
Na pewno został w nim źle omówiony właśnie temat MIMETYPE smile.gif

Tam twierdza, ze latwo to nadpisac (ale uzywac warto), ja tam sie nie znam na hakierowaniu, wiec nie wiem winksmiley.jpg
Tak czy siak, nie bylo Twojego postu, dlatego dalem ten link - jak zwykle drugi smile.gif

Ten post edytował kapuch 13.07.2010, 21:41:20


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
siurek22
post 13.07.2010, 22:00:14
Post #6





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


MIMETYPE samo nic nieda najwazniejsze to kontrola rozszerzenia pliku zalezy tez co uploadujesz czy same obrazy czy all, getimagesize() nie jest najbezpiczniejsze da sie oszukac... jezli ktos ma jakies ale to zapraszam na bloga speca :] http://gynvael.coldwind.pl/?id=219
Co do obrazow to chyba najbezpieczniej jest tworzenie nowego obrazu w przeskalowaniu o 1% co powinno wymieszac kod php tak zeby nam sie do includa niezdal...
Go to the top of the page
+Quote Post
wookieb
post 13.07.2010, 22:06:50
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(siurek22 @ 13.07.2010, 23:00:14 ) *
MIMETYPE samo nic nieda najwazniejsze to kontrola rozszerzenia pliku

Że co?


--------------------
Go to the top of the page
+Quote Post
siurek22
post 13.07.2010, 22:15:11
Post #8





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


translate: "sprawdzenie samego mimetype nic nie da... najważniejsze to dokładnie pilnować rozszerzenia pliku jaki jest wgrywany na serwer"
tongue.gif
Go to the top of the page
+Quote Post
wookieb
post 13.07.2010, 22:16:26
Post #9





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Raczej odwrotnie. Jak narazie fileinfo mnie nie zawiódł i po dokładniejszej lekturze twojego linku przestudiuje to co jest tam podane.


--------------------
Go to the top of the page
+Quote Post
siurek22
post 13.07.2010, 22:34:36
Post #10





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


Właśnie zabezpieczenia w php to dość drażliwy problem bo jak się nie znajdzie błąd w samym języku to jakieś nie domówienie w specyfikacji języka o czym możemy dość sporo wyczytać na blogu który podałem. I tu mamy małego zonka bo żeby coś bezpiecznego zrobić to naprawdę wiele trzeba się naczytać przykładowo wiele osób listujących katalogi lub robiących skrypty pobierające pliki zabezpieczenia się przed zejściem katalog niżej a zapominają o streamach data, file itd.
Go to the top of the page
+Quote Post
iVorIus
post 14.07.2010, 00:25:41
Post #11





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Z fileinfo na razie nie mogę korzystać, bo php jest jeszcze w wersji 5.2

Upload tylko obrazków. Jaką sprawdzoną metodę wybrać?


--------------------
Chcieć to móc, lecz trudnością jest chcieć, nie móc.
Go to the top of the page
+Quote Post
darko
post 14.07.2010, 02:07:49
Post #12





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Mam podobny problem, fileinfo nie jest obsługiwane na serwerze, na którym muszę pracować. Nic nie dało też sprawdzanie typu mime pliku za pomocą poleceń systemowych, np. exec('file -bi nazwa'); itd. dlatego, że np. nowsze formaty plików office, jako że posiadają skompresowane dane (?) są rozpoznawane jako typ zip. Dodatkowo też występują różnice w niektórych nazwach typów mime na różnych serwerach, w zależności od wersji i rodzaju zainstalowanego systemu operacyjnego (sytuacja sprawdzona). Czy zostaje tylko jakiś flashowy uploader np. uploadify? Z drugiej strony - odpowiedni mechanizm weryfikacji przesyłanych plików pod różnym kątem też trzeba jakoś obsłużyć w php. Czy jedynym skutecznym rozwiązaniem jest faktycznie tylko fileinfo?


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
siurek22
post 14.07.2010, 05:41:41
Post #13





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


zalezy co chcesz robic bo jezeli nie sa to obrazy a chcesz te pliki pobierac to dobrze jest przydzielic wlasna nazwe tamta ktora byla podana przefiltrowac i zapisac w bazie i podczas pobierania pliku ustawic zeby wstawialo wczesniejsza nazwe... lub zwykla kontrola rozszerzenia tylko musicie pamietac zeby sprawdzic dlugosc nazwy i jak sprawdzanie rozszerzenie to brac ostatnie .txt a nie losowo bo dosc duzo skrypto sie na tym wyklada wtedy wystarczy zrobic plik.txt.php sprawdzcie tez czy koles nie zmienia czasem katalogow. widzialem tez ze ludzie bawia sie nieraz w htaccess i wylaczaja dzialanie plikow php dla wybranych katalogow
Go to the top of the page
+Quote Post
darko
post 14.07.2010, 09:49:19
Post #14





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(siurek22 @ 14.07.2010, 06:41:41 ) *
zalezy co chcesz robic bo jezeli nie sa to obrazy a chcesz te pliki pobierac to dobrze jest przydzielic wlasna nazwe tamta ktora byla podana przefiltrowac i zapisac w bazie i podczas pobierania pliku ustawic zeby wstawialo wczesniejsza nazwe... lub zwykla kontrola rozszerzenia tylko musicie pamietac zeby sprawdzic dlugosc nazwy i jak sprawdzanie rozszerzenie to brac ostatnie .txt a nie losowo bo dosc duzo skrypto sie na tym wyklada wtedy wystarczy zrobic plik.txt.php sprawdzcie tez czy koles nie zmienia czasem katalogow. widzialem tez ze ludzie bawia sie nieraz w htaccess i wylaczaja dzialanie plikow php dla wybranych katalogow

Wydaje mi się, że to jest jasne, sam robię podobnie, z tym, że jeszcze oprócz filtrowania nazwy (wywalam polskie diakrytyki, zamieniam spacje na podkreślniki itp.) zmieniam też nazwę pliku na ustaloną w ogólnym formacie (dodaję na początku id z bazy+podkreślnik), aby uniknąć przypadkowego nadpisania plików o tej samej nazwie. Do spr. rozszerzenia pliku używam funkcji pathinfo, więc sztuczki typu nazwa_pliku.test.txt.tar.gz.php nie przejdą.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
iVorIus
post 14.07.2010, 17:20:07
Post #15





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


Okej, ostatnie 2 konkretne pytania:
1. W jaki sposób sprawdzić typ pliku nie mając do dyspozycji fileinfo ?
2. Jak zabezpieczyć upload, do wgrywania tylko obrazów (jpeg, png, gif) ?


--------------------
Chcieć to móc, lecz trudnością jest chcieć, nie móc.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:33