Patrzę sobie w źródła strony, która korzysta z GraphQL (którą to jest https://en.zalando.de) i po raz kolejny nie mogę wyjść z podziwu, kto wpadł na pomysł, by stworzyć równie pokraczne dziadostwo, produkujące na wyjściu taki śmietnik w kodzie. No bo przecież to świetny pomysł i porządna inżynieria aby w JSON-ie kluczem w danych był kolejny JSON. Strona embeduje zatem potworny kawał JavaScriptu, który to ma z kilka tysięcy linii po sformatowaniu i oczywiście n poziomów zagnieżdżeń, żeby się go czasem zbyt łatwo nie zanalizowało, w którym to tkwią klucz w rodzaju:
"{\"id\":\"cb96571222c2df7160e55fd1765c7044a48026b6d47f61e99f9bdd6afffbe9f8\",\"variables\":{\"keys\":[\"product.flag.earlyaccess.plus\",\"pdp.plus.earlyaccess.reminder.confirmation.headline\",\"pdp.plus.earlyaccess.reminder.confirmation.subheadline\",\"pdp.plus.earlyaccess.reminder.confirmation.body\",\"pdp.plus.earlyaccess.reminder.confirmation.body.wishlist\",\"pdp.plus.earlyaccess.reminder.error\",\"max.order.limit.notification.pdp\",\"max.customer.limit.notification.pdp\",\"max.customer.limit.notification.wardrobe.web\",\"brand.follow.notification\",\"wishlist.add.notification\"],\"host\":\"en.zalando.de\"}}"
I z takich oto bohomazów można wydłubywac różne dane.
>>> pprint.pprint(json_data["graphqlCache"]["{\"id\":\"cb96571222c2df7160e55fd1765c7044a48026b6d47f61e99f9bdd6afffbe9f8\",\"variables\":{\"keys\":[\"product.flag.earlyaccess.plus\",\"pdp.plus.earlyaccess.reminder.confirmation.headline\",\"pdp.plus.earlyaccess.reminder.confirmation.subheadline\",\"pdp.plus.earlyaccess.reminder.confirmation.body\",\"pdp.plus.earlyaccess.reminder.confirmation.body.wishlist\",\"pdp.plus.earlyaccess.reminder.error\",\"max.order.limit.notification.pdp\",\"max.customer.limit.notification.pdp\",\"max.customer.limit.notification.wardrobe.web\",\"brand.follow.notification\",\"wishlist.add.notification\"],\"host\":\"en.zalando.de\"}}"]["data"]["translations"])
{'brand.follow.notification': 'Following! Find more brands or adjust your list '
'anytime in your account.',
'max.customer.limit.notification.pdp': 'You’ve already purchased this product '
'and reached the max limit as a '
'customer.',
'max.customer.limit.notification.wardrobe.web': 'Looks like you’ve already '
'ordered the max amount of '
'this item.',
'max.order.limit.notification.pdp': 'It looks like you already purchased the '
'maximum limit of exclusive items.',
'pdp.plus.earlyaccess.reminder.confirmation.body': 'We’ll send you an email '
'when this item drops.',
'pdp.plus.earlyaccess.reminder.confirmation.body.wishlist': 'For now, we’ve '
'added this to '
'your liked items '
'so you can find '
'it again.',
'pdp.plus.earlyaccess.reminder.confirmation.headline': 'All set!',
'pdp.plus.earlyaccess.reminder.confirmation.subheadline': 'You’ll be first to '
'know',
'pdp.plus.earlyaccess.reminder.error': 'We hit a snag! Try setting the '
'reminder again.',
'product.flag.earlyaccess.plus': 'Early Access',
'wishlist.add.notification': 'The item was added to your wish list.'}
Jak ktoś korzysta z bibliotek i frameworków, które chowają przed nim całą tę cudaczną złożoność to może i uważa, że GraphQL to fajny gadżet i przyszłość web developerki, ja jednak, zaglądając pod maskę czuję tylko paskudny swąd strasznego partactwa. Coś chyba pospolitego w pociesznym świecie frontów, że by tylko przypomnieć pocieszny wpis How it feels to learn JavaScript in 2016, czy node.js z ich cudacznym środowiskiem i śmietnikiem jaki się wciąga przy każdej próbie spakowania wszystkiego do kupy (bo x polega na y, które polega na z, które wciąga niesławne is-even
, bo developer co to pisał najwyraźniej nie wiedział jak to się sprawdza).
Wy tak żyjecie?
klepania schematów
Masz na mysli "schema"? To w Calibanie np. same sie klepia
Była niedawno dyskusja na temat zbierania fingerprint'ów przez serwis. Z ciekawości postanowiłem zgłębić temat i zobaczyć jak realne jest to zagrożenie i jak daleko można pójść z identyfikacją użytkownika w sieci....
W sumie podejrzewałem, że możliwości są większe niż te, które znałem ale ostatecznie i tak nieco mnie to zaskoczyło.
Z oficjalnie udokumentowanych narzędzi pozwalających gromadzić poszczególne składniki odcisku widzimy, że jest tego sporo... Nie licząc innych mniej oficjalnych tricków, błędów, dziur w przeglądarkach.
Ciekawe linki:
W kontekście całego świata informacje raczej dużego zagrożenia nie stanowią ale w kontekście takiego forum jak 4p...
U mnie jest kilka informacji, które mocno zawężają grono osób, które mogą mieć podobnie jak ja np.:
Nie sądzę aby na forum znalazła się druga osoba z takim samym zestawem... Porównywałem sobie wyniki na trzech komputerach w FF, Chrome i Operze...
Wniosek...
Zakładając, że działamy na domyślnych ustawieniach przeglądarek (a pewnie tak robi większość) to moim zdaniem, mądrze dobrane składniki do budowania FP dają możliwość jednoznacznej identyfikacji użytkownika w ramach małego forum - bez względu na to czy użytkownik używa VPN, różnych przeglądarek, trybu incognito itp...
Ej... Przecież mamy shadowbany. Już od kilku dobrych miesięcy nie widziałem vy-sryvow tajnego agenta czy jak mu tam było. Dorzucam kolejnego typa :) teraz mam tylko do siebie pretensje ze zapomniałem o tej funkcji https://imgur.com/a/tg9805e
Pojawił się Pająk (dawniej Pajączek) w wersji 6.0 :) Przyznać się kto korzystał z poprzednich wersji? ;)
https://www.creamsoft.com/pl/blog/nowy-pajaczek-a-raczej-pajak-v6/
Być może jeszcze pamiętasz Pajączka? To taki program do tworzenia stron WWW, aplikacji w PHP, czy JavaScript. Właśnie miała premierę jego nowa wersja - Pająk V6 🕷
https://www.creamsoft.com/pl/blog/nowy-pajaczek-a-raczej-pajak-v6/Wystartowała promocja na programowanie webowe
Od dzisiaj do przyszłego czwartku, tj. 26.07.2018r. wszystkie kursy z kategorii web development
kupisz w cenie 35.00 zł!
#programowanie #webmastering #javascript #css #angular #angularjs #php #seo #wordpress #html5 #nodejs
Front end? Na pewno nie jest Ci obcy CSS. Poznaj Sass i przekonaj się jak w prosty sposób wykorzystać środowisko Sass pod nowy projekt!
Sass od podstaw. Budowa kompleksowej strony w oparciu o metodologię BEM
#sass #css #frontend #webdesign #webmastering #node.js
Straszne ogolniki rzuciles, trudno nawet to zakwestionowac no bo nie wiadomo o co Ci chodzi :p