![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak bezpiecznie załadować plik graficzny na serwer, aby rzeczywiście był plikiem PNG, JPG lub GIF i nie zawierał szkodliwego kodu?
getimagesize() Wymagania: GD Nie chroni przed: wrzuceniem kodu PHP do obrazu (wciąż wykrywa typ: image/*) mime_content_type() Czy funkcja zawsze poprawnie wykrywa typ MIME pliku (NIE na podstawie rozszerzenia)? Czy jest wystarczającym zabezpieczeniem? W podręczniku PHP jest napisane, że funkcja ma status "deprecated" i odsyłają do rozszerzenia Fileinfo z PECL - wątpię, żeby było dostępne na większości serwerów, szczególnie darmowych, gdyż trzeba je doinstalować. $_FILES['type'] Tak, to naiwna metoda, gdyż typ jest wysyłany przez przeglądarkę. Pole MAX_FILE_SIZE Do czego właściwie przydaje się to pole? Zabezpieczenie nie chroni przed userami, którzy zwiększą wartość tego pola. Wniosek? Których zabezpieczeń wystarczy użyć, aby mieć pewność, że na serwer zostanie wysłany rzeczywiście plik PNG, JPG lub GIF? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Sposób stary jak świat: wczytać kilka pierwszych i ostatnich bajtów z pliku by zobaczyć, co zawiera. Użyć biblioteki GD i wykonać jakąś operację na obrazku - jeśli będzie poprawna, to obrazek jest ok.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 18:42 |