![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Mam taki problem - otoz stworzylem skryt uploadujacy plik (Cv) na serwer. Mozliwy jest upload tylko 5 typow plikow - *.pdf, *txt, *rtf, *doc i *.docx. Jak na razie dziala to w oparciu o sprawdzanie typu MIME poszczegolnych plikow. I TU wasnie tkwi problem - uzytkownik moze zmienic rozszerzenie pliku *.exe na *.txt powiedzmy i pozniej moj klient uruchomi taki plik ktora jest w rzeczywistosci szkodliwa aplikacja lub szkodliwym plikiem *.vb, *.js badz jeszcze innym... Czy mozna sprawdzic jaki typ pliku jest rzeczywiscie uplodowany? Sprawdzania naglowkow jest mozliwe przy plikach graficznych wiec jak to zrobic przy dokumentach? Z gory dziekuje z odpowiedz Oto kod skryptu:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Może pomoże http://www.beldzio.com/bezpieczny-upload-plikow
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za odpowiedz. Ale nie jest to chyba to czego szukalem (IMG:style_emoticons/default/sad.gif) Dokladnie chodzi mi o programistyczne wyeliminowanie niechcianych plikow nie ograniczajac sie do modyfikowania plikow konfiguracyjnych.
Nie ma zadnego innego sposobu? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak na razie dziala to w oparciu o sprawdzanie typu MIME poszczegolnych plikow. I TU wasnie tkwi problem - uzytkownik moze zmienic rozszerzenie pliku *.exe na *.txt powiedzmy i pozniej moj klient uruchomi taki plik (...) Jeśli operujesz na MIME to nie na rozszerzeniach, to dwie różne rzeczy. Do sprawdzenia MIME pliku masz fileinfo. Ze zdjęciami nie ma problemu, bo możesz je przepuścić przez funkcje generujące grafikę (imagecreate). Z innymi plikami jest problem, bo ktoś może brać nagłówki z właściwych plików, a dopisać resztę z innego, jednak wtedy plik otworzy się w domyślnej aplikacji i raczej ją wywróci czy powstaną krzaki, aniżeli się uruchomi. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Menedzer w firmie sie uparl sie na sprawdzanie plikow a mowilem mu wczesniej ze - jak napisales wczesniej Vokiel - po zmianie formatu plik bedzie w formie "krzaczkow".
Dzieki za odpowiedzi |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Sprawdzaj MIME po stronie serwera, to najpewniejsze rozwiązanie. Jeśli chodzi o obrazki, to sprawdzaj również, czy nie ma tam przypadkiem ciągu otwierającego blok PHP, gdyż i w ten sposób da się przemycić trojana.
Jeśli używasz PHP starszego niż 5.3 i masz dostęp do poleceń powłoki, wywołaj Kod file -bi plik i w zwróconym wyniku dostaniesz MIME pliku. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Zasadniczo nie ma w 100% skutecznej metody detekcji. Jak komuś zależy, to i w pliku graficzym przemyci kod wykonywalny. Nie wiem czy masz wpływ na rozszerzenia dostępne na serwerze, ale jeśli masz, to zainteresuj się tym rozszerzeniem:
http://docs.php.net/manual/en/book.fileinfo.php Pozwala ono na "odgadnięcie" typu MIME na podstawie specyficznych, "magicznych" sekwencji bajtów umieszczonych w treści pliku. Jest to heurystyka, ale dość skuteczna i ma tę zaletę, że nie polega na informacji o typie MIME dostarczonej przez przeglądarkę, która może być sfałszowana. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:32 |