Sprawdzenie czy poprawny JSON
Daniel Stalica - 11-10-2007 00:01
Sprawdzenie czy poprawny JSON
Witam, potrzebuję rozwiązania problemu sprawdzania za pomocą JS czy dany string jest poprawnym JSON'em
Jak to zrobić najlepiej?
-- Blog: http://blog.stalica.info
Daniel Stalica - 11-10-2007 00:01
Daniel Stalica pisze: > Witam, potrzebuję rozwiązania problemu sprawdzania za pomocą JS czy dany > string jest poprawnym JSON'em > > Jak to zrobić najlepiej? >
Jedyne na co wpadłem to przechwycenie wyjątku (try, catch) w czasie użycia eval() na JSON, jakieś inne pomysły?
-- Blog: http://blog.stalica.info
William - 11-10-2007 00:01
> > Witam, potrzebuję rozwiązania problemu sprawdzania za pomocą JS czy dany
> > string jest poprawnym JSON'em > > > > Jak to zrobić najlepiej? > >
Najlepsze byłoby napisanie drugiego interpretera javascriptu w javascripcie.
> Jedyne na co wpadłem to przechwycenie wyjątku (try, catch) w czasie > użycia eval() na JSON, jakieś inne pomysły? >
Zawsze ten kod może np. uszkodzić twój kod. Może napisz jaki jest cel tego testu, tzn. jakie mogą być okoliczności w których z (domyślam się) odpowiedzi zapytania http otrzymujesz coś co jak podejrzewać jest przekłamane. Może jakieś sumy kontrolne ?
Daniel Stalica - 11-10-2007 00:01
William pisze: > > Najlepsze byłoby napisanie drugiego interpretera javascriptu w javascripcie. >
Tez o tym myślałem, tyle że za dużo roboty z tym...
> > Zawsze ten kod może np. uszkodzić twój kod. Może napisz jaki jest cel tego testu, tzn. jakie mogą być okoliczności w których z (domyślam się) odpowiedzi zapytania http otrzymujesz coś co jak podejrzewać jest przekłamane. Może jakieś sumy kontrolne ?
Tak, chodzi o odpowiedź po http, mało istotne jest to co to są za dane, zabezpieczenie hashem jest zbędne, istotne jest to czy nie wywali mi skryptu gdy potraktuje otrzymany kod eval()'em, bo obawiam się, że czasami coś po drodze ginie między serwerem a klientem i w tym przypadku dane pobieram ponownie.
Przechwycenie wyjątku działa... ale nie jestem zwolennikiem tego rozwiązania, a może mylnie...
-- Blog: http://blog.stalica.info
Piotr Szturmaj - 11-10-2007 00:07
>> > Witam, potrzebuję rozwiązania problemu sprawdzania za pomocą JS czy >> > dany >> > string jest poprawnym JSON'em >> > >> > Jak to zrobić najlepiej? >> > > > Najlepsze byłoby napisanie drugiego interpretera javascriptu w > javascripcie.
Wystarczyłby własny dekoder JSON'a :-) lub wspomniane try..catch + eval
William - 12-10-2007 00:02
> skryptu gdy potraktuje otrzymany kod eval()'em, bo obawiam się, że
> czasami coś po drodze ginie między serwerem a klientem i w tym przypadku > dane pobieram ponownie.
Zasadniczo jest to bardzo mało prawdopodobne... Najprościej jest imho przejsć na https i on załatwia za ciebie problem integralnosci danych.
Daniel Stalica - 12-10-2007 00:02
William pisze: >> skryptu gdy potraktuje otrzymany kod eval()'em, bo obawiam się, że >> czasami coś po drodze ginie między serwerem a klientem i w tym przypadku >> dane pobieram ponownie. > > Zasadniczo jest to bardzo mało prawdopodobne... Najprościej jest imho przejsć na https i on załatwia za ciebie problem integralnosci danych.
Łączę się po https, chcesz powiedzieć, że wtedy nie ma możliwości, żeby jakiś mały pakiecik gdzieś zaginął podczas łączenia sie z użytkownikiem który gubi np 10% wysłanych pakietów? ja tylko teoretyzuje, bo nie robiłem tego typu testów, a mam powód do szukania dziury...
-- Blog: http://blog.stalica.info
=?iso-8859-2?B?TWFjaWVqIKNlYmtvd3NraQ==?= - 12-10-2007 00:02
Dnia 11-10-2007 o 09:30:21 Daniel Stalica <daniel@stalica.info> napisał(a):
>> Zasadniczo jest to bardzo mało prawdopodobne... Najprościej jest imho przejsć na https i on załatwia za ciebie problem integralnosci danych. > Łączę się po https, chcesz powiedzieć, że wtedy nie ma możliwości, żeby > jakiś mały pakiecik gdzieś zaginął podczas łączenia sie z użytkownikiem > który gubi np 10% wysłanych pakietów? ja tylko teoretyzuje, bo nie > robiłem tego typu testów, a mam powód do szukania dziury...
Sugerujesz, że użytkownik łącza, które traci 10% pakietów, dostaje jedynie 90% strony? :-) To nie tak działa! Te stracone pakiety są przesyłane ponownie. Nie ma opcji, żebyś dostał niekompletny dokument, jeśli chodzi o jego zawartość. Tzn na pewno nie z winy sieci. Albo dostaniesz cały, 100%, niezmodyfikowany, albo wcale (jakiś timeout sie zdarzy, etc). No, możesz też nie doczekać się*"onreadystate==4", wtedy rzecz jasna możesz mieć w buforze jedynie jakąś część dokumentu.
-- Używam klienta poczty Opera Hugin: http://www.opera.com/mail/
William - 12-10-2007 00:02
> Łączę się po https, chcesz powiedzieć, że wtedy nie ma możliwości, żeby
> jakiś mały pakiecik gdzieś zaginął podczas łączenia sie z użytkownikiem > który gubi np 10% wysłanych pakietów? ja tylko teoretyzuje, bo nie > robiłem tego typu testów, a mam powód do szukania dziury...
Sam protokół tcp (a na nim jest oparte http) zapewnia ciągłość transmisji (że dostaniesz wszystko to co wysłano lub sygnał niepowodzenia). Sumy kontrolne na poziomie IP, ramki etherentowej, ADLS itd nie pozwalają na przekłamania przypadkowe. Https zabezpieczy cie również przez przkłamaniami celowymi (atak).
Daniel Stalica - 12-10-2007 00:02
Maciej Łebkowski pisze: > Dnia 11-10-2007 o 09:30:21 Daniel Stalica <daniel@stalica.info> napisał(a): > > Sugerujesz, że użytkownik łącza, które traci 10% pakietów, dostaje > jedynie 90% strony? :-) To nie tak działa! Te stracone pakiety są > przesyłane ponownie. Nie ma opcji, żebyś dostał niekompletny > dokument, jeśli chodzi o jego zawartość. Tzn na pewno nie z winy > sieci. Albo dostaniesz cały, 100%, niezmodyfikowany, albo wcale > (jakiś timeout sie zdarzy, etc). > No, możesz też nie doczekać się "onreadystate==4", wtedy rzecz jasna > możesz mieć w buforze jedynie jakąś część dokumentu. >
Jeszcze nie dawno temu w Hiszpani korzystałem z internetu i w niektórych porach traciły sie dane po drodze (nie ładowało się wszystko na stronie, to .css nie było to .jpg, to .js), ale rozumiem, ze w tym wypadku albo nie ma nic (i jest timeout?), albo dochodzi całość?
-- Blog: http://blog.stalica.info
Daniel Stalica - 12-10-2007 00:02
William pisze: > > Sam protokół tcp (a na nim jest oparte http) zapewnia ciągłość transmisji (że dostaniesz wszystko to co wysłano lub sygnał niepowodzenia). Sumy kontrolne na poziomie IP, ramki etherentowej, ADLS itd nie pozwalają na przekłamania przypadkowe. Https zabezpieczy cie również przez przkłamaniami celowymi (atak).
Dzięki za info. To mi wystarczy, czyli problem mam gdzie indziej...
-- Blog: http://blog.stalica.info
=?iso-8859-2?B?TWFjaWVqIKNlYmtvd3NraQ==?= - 12-10-2007 00:02
Dnia 11-10-2007 o 11:40:13 Daniel Stalica <daniel@stalica.info> napisał(a):
> Jeszcze nie dawno temu w Hiszpani korzystałem z internetu i w niektórych > porach traciły sie dane po drodze (nie ładowało się wszystko na stronie, > to .css nie było to .jpg, to .js), ale rozumiem, ze w tym wypadku albo > nie ma nic (i jest timeout?), albo dochodzi całość?
To różne pliki (.css, .js, etc), więc różne połączenia.
-- Używam klienta poczty Opera Hugin: http://www.opera.com/mail/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
=?ISO-8859-2?Q?[Oralce]_Jak_sprawdzi=E6_d?= =?ISO-8859-2?Q?ok=B3adn=B1_wersj=EA_binari=F3w=3F?=
(OT) do oceny - =?ISO-8859-2?Q?poprawno=B6=E6_graficzna_i_?==?ISO-8859-2?Q?plityczna=3A=29?=
=?iso-8859-2?q?[ms_sql]_Sprawdzenie_kto_usun=B1=B3_dane_w_tabeli_=3F?=
=?ISO-8859-2?Q?Jak_sprawdzi=E6_czy_obiekt_zosta=B3_utowrzony= 3F?=
[sybase] Jak w sprawdzić strukturę obiektu (tabeli) w Interactive SQL ???
Jak sprawdzić wystepowanie podciągu w kolumnie (SQL Server 2005)
=?ISO-8859-2?Q?zapytanie_w_sql,_pro=B6ba_o_sprawdzenie?=
[FIREBIRD] procedura, jaak sprawdzic czy zaapytanie zwrocilo pustywynik
Jak sprawdzić kodowanie znaków bazy MS SQL ?
zanotowane.pldoc.pisz.plpdf.pisz.plmarcelq.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|