Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szybkie sprawdzanie poprawnosci obrazka
Forum PHP.pl > Forum > PHP
Archarius
Witam
Problem jest nastepujacy: Jak szybko sprawdzic, czy uzytkownik nie chce przemycic w pliku graficznym jakiegos exploita, rootkita czy innego swinstwa? W tej chwili sprawdzam za pomoca getimagesize() ale to metoda niedoskonala o tyle, ze serwer musi sobie wczytac caly plik. Kiedy na stronie jest kilkanascie czy kilkadziesiat obrazkow taka strona wogole sie nie zaladuje. Czy jest szybszy sposob na sprawdzenie czegos takiego?
erix
A nie możesz sprawdzić MIME z $_FILES['plik']['type']?
Archarius
Niestety nie. Chce zrobic filtr w bbcode do postowania obrazkow na forum - wiekszosc z tych obrazkow nie jest umieszczonych na moim serwerze.

EDIT: Ew. pomoglaby mi mozliwosc zczytania samego naglowka przesylanego pliku. Tylko jak to zrobic w php 4.4.4?
erix
Cytat
Niestety nie.

Powód?

Cytat
wiekszosc z tych obrazkow nie jest umieszczonych na moim serwerze

No to jak nie są na Twoim serwerze, to tak czy tak musisz go odczytać.

Cytat
pomoglaby mi mozliwosc zczytania samego naglowka przesylanego pliku

Możesz spróbować cURL-em rozpocząć zwykłe pobieranie pliku i sprawdzać, jaki typ MIME zwraca serwer hostujący plik.

No, ale jeśli się pomyli albo zostanie podmienione MIME, to wtedy kicha.

Najpewniej jest ściągnąć plik do siebie i sprawdzić przez file -bi plik. Jeśli na Windzie, to przez mime_content_type" title="Zobacz w manualu PHP" target="_manual i to jeszcze z rozszerzeniem MIME Magic.

Ale jeśli znasz w wystarczającym stopniu Javę, to napisz aplet, który sprawdzi pliki przed wysłaniem.

Tyle mi przychodzi do głowy.
marcini82
Niestety, o ile mi wiadomo to bez pobrania obrazka na swoj serwer nie jestes w stanie sprawdzic, czy jest on tylko i wylacznie obrazkiem, czy moze oprocz niego zdalny serwer wysyla jeszcze jakies zlosliwe dodatki.
Zlosliwy kod moze byc wyslany jako np. image/jpeg, a przegladarka i tak go wykona.
SongoQ
Polecam http://anakin.us/blog/xss-csrf-niebezpieczna-grafika/
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.