Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML]Sprawdzenie MimeType w JS, Czy dobry pomysł???
Rid
post 5.07.2011, 12:25:21
Post #1





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Czy dobrym pomysłem jest sprawdzenie mime-type pliku po stronie klienta.Czytałem ,że JS ma ograniczony dostęp do systemu plików,katalogów itp.Dlatego,niekiedy może się zdażyć ,że typ mime pliku może zostać nieprawidłowo rozpoznany.
Czy lepiej pominąć sprawdzanie mime pliku po stronie klienta i użyć tego sposobu tylko po stronie serwera??
Ktoś ,próbował użyć weryfikacji mime pliku w JS ,czy to prawidłowo funkcjonuje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
drozdii07
post 5.07.2011, 12:34:10
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Zrob walidacje po stronie serwera. JS mozna wylaczyc wiec cala walidacja pojdzie na grzyby smile.gif


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
Rid
post 5.07.2011, 12:40:24
Post #3





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Ja się tym nie przejmuje-bo większość strony oparta jest o technologię ajax ,tak więc jak wyłączy JS-to raczej plików nie ściągnie,nie załaduje obrazów itp.

Więc jak,ktoś wie czy weryfikacja mime po stronie js jest skuteczna-to prosiłbym o odpowiedź,bo nie chciałbym ,aby odrzucało co drugiej osobie uploadowane pliki ze względu na źle rozpoznany typ mime .
Go to the top of the page
+Quote Post
drozdii07
post 5.07.2011, 13:11:26
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Ja na twoim miejscu nie ryzykowalbym walidacji tylko JS. To co jest po stronie klienta jest jego, wiec moze robic z tym co chce. Nie jestem pewien ale NoScriptem mozna blokowac wybrane skrypty.


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
melkorm
post 5.07.2011, 13:22:32
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Źródło -> wywal kod odpowiedzialny za walidację -> oh gdzie ta piękna walidacja Q_Q


--------------------
Go to the top of the page
+Quote Post
Rid
post 5.07.2011, 13:26:18
Post #6





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Cytat
Źródło -> wywal kod odpowiedzialny za walidację -> oh gdzie ta piękna walidacja Q_Q

Tej wypowiedzi to nie rozumie-czyli doradza Pan pominięcie sprawdzania mime w JS?questionmark.gif

Cytat
Ja na twoim miejscu nie ryzykowalbym walidacji tylko JS. To co jest po stronie klienta jest jego, wiec moze robic z tym co chce. Nie jestem pewien ale NoScriptem mozna blokowac wybrane skrypty.
.

A czy ja powiedziałem,że będę używał weryfikacji mime tylko ,po stronie klienta???Otóż nie ,mam zamiar zastosować oba rozwiązania(po stronie klienta i po stronie serwera),tylko muszę się dopytać czy weryfikacja mime w js jest skuteczna ze względu na to że js ma ograniczony dostęp do zasobów i może czasami błędnie rozpoznawać typ mime plików,ale nie jestem tego na 100% pewny,Dlatego pytam czy warto użyć JS do sprawdzania typu mime pliku,czy to pomoże,czy raczej zaszkodzi??

Ten post edytował Rid 5.07.2011, 13:34:02
Go to the top of the page
+Quote Post
drozdii07
post 5.07.2011, 13:29:02
Post #7





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Jesli naprawde potrzebna ci walidacja bez przeladowania to napisz skrypt PHP i komunikuj sie z nim za pomoca AJAX

EDIT: Skoro chcesz robic walidacje po stronie serwera, to po co pchac sie dodatkowo w JS ?

Ten post edytował drozdii07 5.07.2011, 13:40:30


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
Rid
post 5.07.2011, 13:52:17
Post #8





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Dla wygody użytkownika,dodatkowo dla bezpieczeństwa,bo akurat mam zastosowane u siebie takie rozwiązania,że walidacje typu mime pliku mogę po stronie klienta z łatwością wdrożyć bez dodatkowych requestów ajaxowych,tylko czy jest ona skuteczna i nie powoduję błędów i komplikacji?

Ten post edytował Rid 5.07.2011, 13:59:16
Go to the top of the page
+Quote Post
drozdii07
post 5.07.2011, 14:04:27
Post #9





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Jak sie tam upares na to JS to kombinuj cos. Jesli mozesz to podeslesz link gdzie znalazles cos o tego typu walidacji ? Bo mi google nic nie chce powiedziec


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
Rid
post 5.07.2011, 19:16:39
Post #10





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


http://help.dottoro.com/ljkfceta.php

Tak poza tym ,z mojego punktu widzenia walidacja js w moim(tym) przypadku, jest bardziej preferowana ,niż po stronie serwera,
dlatego ,że kontrolka u mnie po prostu nie działa bez js ,tak więc plik nie zostaną uploadowany. Toteż forma walidacji po stronie serwera jest u mnie doatkowym zabezpieczeniem.

Wprowadziłem funkcje która,niejako wychwytuje mime pliku-ale ja nie widzę różnicy pomiędzy zwykłej walidacji
za pomocą rozszerzeń.
Zrobiłem mały eksperyment-zapisałem zwykły dokument tekstowy-z niegroźnym skryptem w JS jako jpg.
Uploadowałem plik i wykryło mime image/jpeg ,zapisało go do katalogu-na szczęście kod się nie wykonał-czy to tak ma działaćquestionmark.gif
Na stronie http://jsbin.com/akati3/2 ,jest tester uploadu -sprawdzałem tam i mniej więcej działa tak jak u mnie chociaż ja to inaczej rozwiązałem-wykrywa tam image/jpeg.
Jak przesiać takie pliki,które w rzeczywistości nie są obrazami.
Jak sprawdzić mapę bitową pliku?questionmark.gif?-bo chyba jedynie ,tak można "przesiać" zapobiec uploadowaniu takich plików.

Ten post edytował Rid 5.07.2011, 19:17:43
Go to the top of the page
+Quote Post
drozdii07
post 5.07.2011, 19:21:45
Post #11





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Sam sie przekonales, ze walidacja w JS to zly pomysl smile.gif Uzyj skryptu server-side, oszczedzisz sobie klopotu


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
Rid
post 6.07.2011, 01:51:19
Post #12





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Wątpię ,żeby sprawdzenie mime pliku po stronie serwera coś zmieniło,w przypadku eksperymenciku ,który zrobiłem,ale spróbuję-nic nie zaszkodzi.
Myślę ,że jedynym skutecznym sposobem będzie sprawdzenie bitmapy pliku,ale będzie trudno bo jeszcze tego nie robiłem.

I tak jak podejrzewałem nie sprawdzi się tego prostym sposobem jak(get_Contets) ,metody te nie są skuteczne,ustalanie mime bazuje na rozszerzeniach.Tak więc ,zbędne jest ustalanie MIME w JS!!!!
Trzeba otworzyć plik i odczytać pierwsze 256bitów aby móc potem sprawdzić do jakich wzorców pasują dane binarne i poprzez to określić prawidłowy tym mime pliku-raczej tego w js się nie zrobi.



I powiem Wam Panowie ,że u was też walidacja typu mime leży,bo udało mi się załadować z localhosta zdjęcia,a jedno zamienione jest z txt na jpg.Dziwne.

Ten post edytował Rid 6.07.2011, 02:22:35
Go to the top of the page
+Quote Post
drozdii07
post 6.07.2011, 08:29:38
Post #13





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Sproboj cos zrobic z tablica $_FILES tam jest zapisany typ przesylanego pliku, przy okazji mozesz zrobic sprawdzanie rozszerzen


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
by_ikar
post 6.07.2011, 09:17:44
Post #14





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Możesz wszystkie ładowane obrazki zmieniać na jakiś inny typ, np wszystko przerabiaj na jpg, bez względu czy to będzie jpg, czy png wszystko na jpg. Lub nawet zmień rozdzielczość, wydaje mi się że funkcje które odpowiadają za sprawdzanie rozmiaru, zmianę rozmiaru itp w przypadku pliku innego niż graficzny, wywalą jakiś błąd. Nie mniej, sam tak robię, próbowałem wrzucić na serwer obrazek z zakomentowanym kodem i takie działanie za każdym razem kończyło się niepowodzeniem.

Gdyby sprawdzanie mimetype po stronie serwera było złe, to serwisy tupu facebook, czy nk nie miałby racji bytu. A sposobów na sprawdzanie mime jest sporo i większość z nich jest dobra.
Go to the top of the page
+Quote Post
Rid
post 6.07.2011, 11:22:48
Post #15





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Nie twierdze, że sprawdzanie po stronie serwera jest,złe-tego nigdy nie powiedziałem.Twierdze jednak że tradycyjne metody sprawdzania typu mime zarówno w PHP jak i w platformie NET są niewystarczające wręcz zbędne gdyż wykrywanie typu mime odbywa się za pomocą rozszerzeń plików.Osoba ,która zrobiła już sprawdzanie plików za pomocą rozszerzeń nie musi już używać sprawdzania typu mime tradycyjnymi metodami ,gdyż jest to równoznaczne z sprawdzeniem rozszerzenia pliku.Jak chce się konkretnie zabezpieczyć trzeba użyć"niestandardowych" skryptów-i tyle z mojej strony.
Go to the top of the page
+Quote Post
drozdii07
post 6.07.2011, 11:28:32
Post #16





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Ktos kto sprawdza tylko rozszerzenie jest moim zdaniem zbyt pewny siebie, lub mysli, ze nikt nie bedzie probowal tego obejsc..Poczytaj o binderach smile.gif


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
by_ikar
post 6.07.2011, 12:25:43
Post #17





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Rid @ 6.07.2011, 12:22:48 ) *
Nie twierdze, że sprawdzanie po stronie serwera jest,złe-tego nigdy nie powiedziałem.Twierdze jednak że tradycyjne metody sprawdzania typu mime zarówno w PHP jak i w platformie NET są niewystarczające wręcz zbędne gdyż wykrywanie typu mime odbywa się za pomocą rozszerzeń plików.Osoba ,która zrobiła już sprawdzanie plików za pomocą rozszerzeń nie musi już używać sprawdzania typu mime tradycyjnymi metodami ,gdyż jest to równoznaczne z sprawdzeniem rozszerzenia pliku.Jak chce się konkretnie zabezpieczyć trzeba użyć"niestandardowych" skryptów-i tyle z mojej strony.


Dlatego nie sprawdza się typu mime w sposób jaki oferują to języki, tylko na około, czyli np sprawdzając rozmiar obrazka, zmieniając jego typ, zmieniając jego rozdzielczość itp. Takie rozwiązania są IMO najlepsze.
Go to the top of the page
+Quote Post
Rid
post 6.07.2011, 12:52:48
Post #18





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Ok już zrobiłem-i teraz wykrywa mi plik tekstowy,który został zmieniany na jpg jako plain/text a nie jako img/jpeg i plik taki się nie ściągnie yahoo.gif Dałbym rozwiązanie ,ale niestety nie robię w tej technologii,więc się na nic tutaj komu zda:(.

Ten post edytował Rid 6.07.2011, 12:54:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 10:44