![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%) ![]() ![]() |
Witam,
zapytanie: jak stworzyć bezpieczny upload dla internautów plików (tylko dokumenty) na serwer? Chciałem to zrobić poprzez sprawdzenie rozszerzenia po kropce (czyli .pdf, .doc, .docx) , dalej po stronie przeglądarki ale niestety chyba Firefox pdf rozpoznaje jako application/ms-download czyli tak samo jak exe, a więc już po stronie przeglądarki nie ma co sprawdzać... w związku z tym chciałem oprzeć wszystko na sprawdzeniu typu MIME po stronie serwer'a, ale niestety funkcja mime_content_type() jest nieobsługiwana - i nie będzie... - przez serwer na którym wgram skrypt uploadu. Zaczerpnięte z php.net
Ten fragment również nie działa. Jakieś pomysły? -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Jesli chcesz sprawdzac po kropce to explode() a jak naglowki to ja mam tak:
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%) ![]() ![]() |
Tylko że getimagesize odnosi się do obrazków, ja mam PDF, DOC i DOCX...
-------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Ah no fakt zapomnialo mi sie no to pozostaje ci explode() albo klasa @Cysiaczek
http://forum.php.pl/index.php?showtopic=80...t=0&start=0 P.S
Tu masz typ uploadowanego pliku wiec wystarczy ze zmienisz naglowki na twoje i kod bedzie dzialal -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie:
$_FILES['costam']['type']; to manual jasno mówi, że nie wolno temu ufać. Sprawdzanie rozszerzenie jest jeszcze gorszym sposobem. Jeśli możesz użyj funkcji: finfo_file" title="Zobacz w manualu PHP" target="_manual Jeśli nie, zobacz sobie komentarze do mime_content_type" title="Zobacz w manualu PHP" target="_manual tam znajdziesz kilka lepszych lub gorszych sposobów. Lub zajrzyj tutaj Prawa jest taka, że nigdy nie będziesz miał pewności, bo plik może mieć sfałszowany/uszkodzony nagłówek. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Chyba wiadomo ze mozna spoofowac naglowki za pomoca live http headers ale praktycznie nigdy nie dziala np u mnie nie
![]() EDIT: Zreszta w linku ktory podalem jest podane najlepsze rozwiazanie na ten problem dodatkowo jak chcesz mzoe sprawdzac naglowki ale po co? ALbo jedno albo drugie Ten post edytował marcio 9.06.2008, 12:46:17 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie: $_FILES['costam']['type']; to manual jasno mówi, że nie wolno temu ufać. Sprawdzanie rozszerzenie jest jeszcze gorszym sposobem. Jeśli możesz użyj funkcji: finfo_file" title="Zobacz w manualu PHP" target="_manual Jeśli nie, zobacz sobie komentarze do mime_content_type" title="Zobacz w manualu PHP" target="_manual tam znajdziesz kilka lepszych lub gorszych sposobów. Lub zajrzyj tutaj Prawa jest taka, że nigdy nie będziesz miał pewności, bo plik może mieć sfałszowany/uszkodzony nagłówek. mime_content_type i komentarze - przeczytałem, nie działa u mnie na serwerze tak jak finfo_file - również nie działa Dzięki za link google, może coś w tym gąszczu uda się znaleźć. -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Nie rozumiem co masz szukac podalem ci wyzej temat z rozwiazaniem wystarczy dac odpowiednie rozszerzenia i hula.....
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem co masz szukac podalem ci wyzej temat z rozwiazaniem wystarczy dac odpowiednie rozszerzenia i hula..... $_FILES [type] - ja wiem że to hula i ten sposób znałem ale to nie jest ani bezpieczne dodatkowo uzależnione od przeglądarki, a chociażby firefox sprawdza pdf'a jako application/ms-download i jest analogiczne z aplikacją exe. W linku który podałeś z tego co ja rzuciłem okiem i poświęciłem dwie minuty to ktoś sie bawi w obiekty przy sprawdzaniu typu samego rozszerzenia (czyli po kropce co jest napisane, a nie typ pliku) ![]() dzięki za odpowiedzi -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
~grudziu tak czytam ten wątek i dochodzę do wniosku że powinieneś już wszystkie wiedzieć połowę postów temu.
Sprawa jest prosta, masz dwa wyjścia. 1. Korzystasz z narzędzi naprawdę sprawdzających typ pliku: MIME types, etc; 2. Sprawdzasz rozszerzenie. Nie ma alternatywy bo nie wiem czy wiesz ale przeglądarki wysyłają MIME na podstawie rozszerzenia więc na jedno wychodzi. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%) ![]() ![]() |
A jednak udało mi się znaleźć (własciwie to wymęczyłem to od supportu home.pl któremu dziękuję) rozwiązanie:
system("file -i $plik"); -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:47 |