Przykładowo w JPG można umieścić komentarz z kodem PHP.
Jeżeli ktoś wczytuje pliki używając include (niestety są takie przypadki) to kod PHP może się wykonać.
Jeżeli używasz
readfile lub
file_get_contents z odpowiednimi nagłówkami nie powinno się nic stać.
Z reguły przy wgrywaniu plików sprawdza się następujące rzeczy:* Rozszerzenie pliku
* Ew. typ mime (chociaż można go sfałszować)
* W przypadku obrazków często używa się funkcji z biblioteki GD
getimagesize, zwróci ona false jeżeli plik nie jest obrazkiem (chociaż też istnieją na to sposoby)
* W przypadku wielu znanych formatów można sprawdzać tzw. magic numbers, czyli początkowe lub końcowe bajty pliku, np. każdy
exe posiada na swoim początku "MZ" lub "ZM" (inicjały twórcy)
* Wgrywany plik powinien mieć zawsze zmienioną nazwę np hash z md5
* Usuwanie tagów php z treści pliku też jest pewnym sposobem na zabezpieczenie