![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Już nie wiem, czemu żadne sprawdzanie rozszerzenia pliku nie działa.
To nie działa..
To działa, ale jak plik będzie się nazywał xxxx.jpg.php to wrzuca. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzaj typ mime przesłanego pliku (czy $_FILES['NAZWA']['type'] zawiera ciąg: 'images/'), dodatkowo - jeśli chcesz ograniczyć typy przesyłanych plików np. tylko do obrazków - możesz posłużyć się funkcją getimagesize. Ale i tak nigdy nie będzie pewności, ponieważ można te wszystkie zabiegi ominąć przy odpowiednim nakładzie pracy.
Ten post edytował darko 14.03.2010, 13:31:28 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 2 Dołączył: 14.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Podstawowe pytanie gdzie chcesz sprawdzać to rozszerzenie, po stronie klienta czy po stronie serwera?
accept w tym przypadku mówi przeglądarce jakie typy plików powinny być wysyłane na serwer i dobra przeglądarka internetowa na podstawie tej informacji powinna umożliwić wybór z lokalnego systemu tylko pliki o takim MIME natomiast:
to chyba jakieś delikatne nieporozumienie, niby co ma robić ten kod? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
natomiast:
to chyba jakieś delikatne nieporozumienie, niby co ma robić ten kod? Sprawdzać czy rozszerzenie pliku, które znajduje się w $sp[1] jest w tablicy dozwolonych rozszerzeń (IMG:style_emoticons/default/winksmiley.jpg) Ale właśnie TursoN wyprintuj sobie zawartość $sp[1] i upewnij się czy na pewno tam znajduje się rozszerzenie przesłanego pliku. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 3 Dołączył: 17.03.2008 Skąd: niekąd Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzanie mime, jak już gdzieś pisałem, to bardzo słaba opcja : d Najlepiej explode wg kropek po nazwie pliku, i odwołanie się do ostatniego elementu tablicy, którą zwróci owa funkcja
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Widmo... A żeś strzelił (IMG:style_emoticons/default/biggrin.gif) poducha.exe.jpg (IMG:style_emoticons/default/winksmiley.jpg) I właśnie na Twoim serwerze znajdować się może trojan bo byłeś idiotą i sprawdzałeś tylko ostatni element wpisany by zmylić. To jest jeszcze banalniejsze do zrobienia niż podmiana MIME, bo może to zrobić każdy zmieniając po prostu nazwę pliku. Poziom zabezpieczeń masz w tym momencie do obejścia przez kilkulatka (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#7
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
I się zaczyna, nikt nie pisze konkretów, tylko robi polewę. A taki kod lepszy:?
Choć na tablicy jeszcze lepiej... Ten post edytował Kshyhoo 14.03.2010, 18:52:49 |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 3 Dołączył: 17.03.2008 Skąd: niekąd Ostrzeżenie: (0%) ![]() ![]() |
thek: trojan w jpgu? Nie szkodzi (IMG:style_emoticons/default/snitch.gif) Ciekawe jak ktoś mi go odpali na serwerze (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Czyli ten jest bezpieczniejszy? No pomyśl trochę. Czy jeden kod, który sprawdza rozszerzenie jest bezpieczniejszy od drugiego, który również sprawdza rozszerzenie?Raczej nie. Chodzi o wygodę i względnie lepszy kod. Jeśli interesuje Cię bezpieczeństwo to podejście do typu pliku powinno byc takie, że najpierw wstępnie weryfikujesz rozszerzenie a później sprawdzasz MIME. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Bezpieczniejszy pod względem, że nie przepuszcza plików, które w nazwie jedynie mają .jpg, np. plik.jpg.php
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nie szkodzi Ciekawe jak ktoś mi go odpali na serwerze Normalnie. Wystarczy np. używać zbugowanych skryptów podatnych na LFI/RFI. W EXIF-ach dla JPEG można osadzać komentarze. I bez problemu także kod PHP. Binarna sieczka przed listingiem zostanie zignorowana, a kod backdoora zostanie wykonany. Więc NAPRAWDĘ pewny upload =
Dlaczego tak radykalnie? Pewnie ktoś pomyśli, że to na pewno się nie wydarzy? Niestety, miałem kiedyś coś takiego w skrypcie SMF (pisałem kiedyś na forum wątek na ten temat), w katalogu skryptu zaroiło się od trojanów w PHP, które prawdopodobnie miały za zadanie powysyłać trochę spamu i zainfekować inne serwery. Load - oczywiście - wzrósł. A sprawdzanie rozszerzenia można kompletnie olać. (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
na podobnej zasadzie można mime sprawdzać Ten post edytował lobopol 14.03.2010, 22:41:46 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A przeczytałeś mojego posta? (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
~erix
1. Czy jest jakaś równie dobra alternatywa dla mime_magic? 2. W jaki sposób można wyłączyć interpreter php w konkretnym katalogu? |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 3 Dołączył: 17.03.2008 Skąd: niekąd Ostrzeżenie: (0%) ![]() ![]() |
Cytat zbugowanych skryptów podatnych na LFI/RFI Tej opcji nie brałem pod uwagę, takie błędy raczej rzadko się zdarzają myślącym programistom (IMG:style_emoticons/default/snitch.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat 1. Czy jest jakaś równie dobra alternatywa dla mime_magic? Jak napisałem - odpalenie polecenia systemowego file -bi plik i analiza zwróconej zawartości (konkretnie zwraca MIME). Cytat 2. W jaki sposób można wyłączyć interpreter php w konkretnym katalogu? Zależy od serwera. Ale na 90% wystarczy w htaccess http://httpd.apache.org/docs/1.3/mod/mod_m...l#removehandler dla MIME odpowiadającemu interpreterowi. Cytat Tej opcji nie brałem pod uwagę, takie błędy raczej rzadko się zdarzają myślącym programistom Jeśli chodzi o zabezpieczenia, to skromność zawsze popłaca. (IMG:style_emoticons/default/winksmiley.jpg) Poza tym, rzadko a nigdy, to jak pomyłka u sapera. (IMG:style_emoticons/default/winksmiley.jpg) Pomyli się tylko raz. (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 21:32 |