![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio zapytano mnie co zrobić w wypadku, gdy użytkownik będzie próbował uploadować zawirusowane zdjęcie na serwer (poprzez funkcję move_uploaded_file() lub copy() ). Szczerze mówiąc nigdy wcześniej nie przyszła mi taka ewentualność do głowy.
Czy rzeczywiście jest to realne zagrożenie? A jeśli tak jakie są możliwości zabezpieczenie strony/serwera przed taką sytuacją? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
~MWL, papier to nie wyznacznik. (IMG:style_emoticons/default/tongue.gif)
A wracając do tematu - kiedyś robiłem ciut głębsze badanie na temat tej przypadłości. getimagesize nie sprawdza, czy są doklejone do pliku jakieś dane. Wynika to z tego, że w GIF/PNG wymiary są zapisane bodajże w nagłówku i po prostu dalsza część pliku nie jest potrzebna. Jeśli chodzi o JPG, jest to związane z konkretnymi blokami i dalej plik nie jest już czytany. W zasadzie wystarczy pierwsze pół kilobajta pliku (nawet uciętego), aby getimagesize nie zwróciło błędu. Jeśli chodzi o możliwość wykorzystania tego kodu - była swego czasu luka w SMF, która zamieniała serwery w istne armaty do spamowania (tak nawiasem, pliki maskowały się w katalogach TinyMCE (IMG:style_emoticons/default/winksmiley.jpg) ). O ile w sytuacji, gdy obrazki są tylko dla nas, to nie ma ryzyka (zakładam, że nie będzie wykorzystywane PHP do ich wyświetlania), to w przypadku, gdy coś z nimi robimy (wyświetlanie przez readfile i pochodne) już stwarzało problemy. Nie mam 100% pewności, ale na atak narażone są konfiguracje, w których PHP działa jako aplikacja (Fast)CGI. Cytat standardowo żaden kod (poza plikami .php) nie jest wykonywany. No i tu jest pies pogrzebany - niestety nie masz racji. Serwer nie sprawdza (to jest jedna z głównych przypadłości bezpieczeństwa wykonania skryptów interpretera PHP), jakie rozszerzenie jest wykonywane. Wystarczy nadpisać tablicę MIME i nawet ten spreparowany obrazek się wykona jako skrypt. Cytat Ale tak przy okazji, jeśli erix mówisz o funkcji usuwania meta tagów to jaka to funkcja co? powiedz ImageMagick, dowolne polecenie, parametr -strip: http://www.imagemagick.org/script/command-...tions.php#strip |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 16:07 |