Witam,
Obecnie pracuję nad serwisem, w którym jedną z dostępnych funkcjonalności to upload plików na serwer. Naniosłem na użytkownika pewne ograniczenie, które polega na przesyłaniu jedynie archiwów zip.
Po tym słowie wstępu mam do Was kilka pytań.
Po pierwsze: Jak można zabezpieczyć się przed przesyłaniem plików innych niż ZIP?
Co już wdrożyłem: Sprawdzanie zawartości tablicy $_FILES[]['typ'] oraz rozszerzenia pliku. Zdaję sobie sprawę z niskiego poziomu zabezpieczenia tej metody. Dodatkowo korzystam z funkcji zip_open(), aby sprawdzić czy plik naprawdę jest archiwum ZIP. Jeśli funkcja nie zwraca uchwytu uważam plik za błędny. Czekam na opinie czy moje rozwiązanie jest dobre.
Drugie pytanie: Jak sprawdzić czy archiwum nie zawiera szkodliwego oprogramowania.
Zdaję sobie sprawę z faktu, że będzie ciężko wyłapać każdy szkodliwe oprogramowanie, ale chociaż podstawowa ochrona by się przydała. Dodam, że pracuje na wirtualnym serwerze, więc zmiana konfiguracji ustawień może być trudna, ale chętnie posłucham rozwiązań dedykowanych, co może przekona mnie do przejścia na serwer dedykowany.