Chcę umożliwić członkom opcję przesyłania treści za pomocą pliku zip. Po przesłaniu chcę użyć klasy ZipArchive PHP, aby rozpakować zawartość pliku zip do katalogu, a następnie przenieść pliki do naszego systemu.Potencjalne problemy bezpieczeństwa z ZipArchive PHP
Jestem zaniepokojony potencjalnymi zagrożeniami bezpieczeństwa i nie mogę znaleźć żadnej dokumentacji na php.net. Pierwszym (cóż, jedynym) ryzykiem, które przychodzi na myśl, jest ktoś, kto tworzy plik zip ze względnymi ścieżkami, jak "../../etc/passwd" (Jeśli założą, że rozpakuję plik w/tmp/somedir).
Naprawdę ciężko jest utworzyć względną ścieżkę w pliku zip, więc nie mogę sprawdzić, czy coś takiego byłoby możliwe. Nie mogę też znaleźć sposobu na wyodrębnienie zawartości pliku zip przy pomocy ZipArchive i zignorować katalogi (rozpakować wszystkie pliki, ale nie tworzyć struktury katalogów wewnątrz zip).
Czy ktoś może mi powiedzieć, czy taki exploit jest możliwy i/lub jak zignorować strukturę katalogów w pliku zip za pomocą ZipArchive?
Uczciwe pytanie, chociaż może nie znaleźć wyczerpującej odpowiedzi. Czy rozważałeś użycie czegoś innego (jak polecenie 'zip' twojego systemu operacyjnego), które może być lepiej udokumentowane pod względem bezpieczeństwa? –
@Pekka Dobry pomysł. Przeczytam strony man i inne dokumenty. – mellowsoon