Koncern Meta – dawniej po prostu Facebook – niedawno zmienił format niektórych linków na swojej platformie.
Brzmi banalnie? A jednak nie oznaczałbym tej nowinki nalepką „wytwory sezonu ogórkowego”. To coś więcej niż słynna libacja na skwerku.
Facebook nie ma najlepszej reputacji, jeżeli chodzi o zerkanie do danych użytkowników. Niektórzy zaczęli ostrzegać, iż linki w nowym formacie pozwolą identyfikować konkretne osoby. Facebook miałby oko na to, kto udostępnia linki do postów z ich platformy na innych stronach.
Oszczędzę Wam suspensu i od razu napiszę – eksperymenty tego nie potwierdziły. Co nie zmienia faktu, iż obecna zmiana może być krokiem ku gorszemu.
Pokażę, o co chodzi w tej całej aferce z linkami. Zobaczymy też, iż choćby te istniejące na Facebooku od dawien dawna mogą mieć swoje „szpiegowskie” zastosowania. A na deser będą wskazówki, jak się przed nimi chronić.
Źródła: okładka „Małego Księcia”, logo Facebooka, plakat X-Ray Vision. Aranżacja moja.
Sprawa nowych linków
Spójrzmy na przykładowy link do posta z Facebooka. Tutaj od Ghacks. Tej samej strony, która nagłośniła całą sprawę:
Uwaga: w tym miejscu oraz w reszcie wpisu odwołuję się do www.facebook.com, wersji na komputery; gdybyśmy odwiedzili link przez urządzenie mobilne, to by nas przekierowało do m.facebook.com.
Przypatrzmy się temu linkowi dobrze, ma teraz wartość muzealną :wink:
Gdybyśmy w niego weszli, to zobaczymy taki post:
Aby uzyskać linki do konkretnych postów z Facebooka, najeżdża się kursorem na datę (w tym wypadku tekst 24 stycznia 2021). Ale kiedy to zrobimy, zobaczymy coś zgoła innego, dłuższego. Na przykład to, choć niekoniecznie:
Gdyby wejść w ten link, to trafimy do tego samego posta co na początku. Zatem Facebook zmienił format linków. Od pewnego czasu wszystkie dodawane do platformy mają tę dłuższą postać.
Tekst od znaku zapytania do końca, na czerwono, to parametry. Jeszcze do nich wrócimy. Literkę x wstawiłem tutaj zamiast bardzo długiego ciągu znaków.
Z kolei fragment na niebiesko to wspomniana zmiana. Nowa postać, jaką mają od pewnego czasu identyfikatory poszczególnych postów na Facebooku.
Dlaczego wywołała takie poruszenie?
Czarny scenariusz
O sprawie po raz pierwszy poinformowała strona Ghacks, twierdząc iż linki Facebooka są od dzisiaj szyfrowane. Zaś każdemu użytkownikowi wyświetla się unikalny link, inny niż ten dla pozostałych. Stwierdzili wprost, iż to w celu śledzenia.
Autor pomylił parę pojęć, ale jego obawy miały swoje podstawy i wywołały lekki szum w mediach.
Mówiąc łopatologicznie – identyfikator posta jest teraz znacznie dłuższy i może się składać nie tylko z cyfr, ale również liter (możecie porównać na przykładach powyżej).
Nie znam się na liczeniu entropii i tych sprawach, ale wiem jedno. Po tej zmianie drastycznie zwiększa się ilość informacji, jakie można upchnąć w linku.
Jakich informacji? Na przykład o tym, któremu z rzekomych dwóch miliardów użytkowników Facebooka wyświetlił się dany link.
Wyobraźmy sobie, iż jakiś Bob Buntowniczy znajduje na Facebooku post wyśmiewający wpływowego polityka. Kopiuje link do posta i zamieszcza go anonimowo na kilku niezależnych stronach.
Ale nie wie, iż kopiowany przez niego ciąg znaków jest całkiem inny niż te, jakie wyświetliły się innym użytkownikom Fejsa. jeżeli ktoś od Facebooka zajrzy poza ich portal i znajdzie wrzucone linki, to mógłby sprawdzić w bazie, jakiemu użytkownikowi odpowiadały.
Nie byłaby to metoda stuprocentowo pewna; może Bob wysłał link Alicji na Messengera, a to Alicja skopiowała go na inne strony. Ujawniałby tylko pierwszą kopiującą osobę.
Być może sam Facebook nic by z tym nie zrobił i tylko siedział na informacjach jak smok na złocie.
Ale ups, oto wyciekła mu baza danych. Jak kiedyś ta z numerami telefonów.
A w międzyczasie wyśmiewany polityk awansował na dyktatora. I teraz sobie sprawdza w tej bazie, jakim konkretnym osobom odpowiadają linki do prześmiewczych postów…
Taka perspektywa mrozi krew w żyłach, więc postanowiłem zbadać temat.
Weryfikujemy zarzuty
Prywatny eksperyment
Odwiedziłem profil znanej stronki na Facebooku (konkretniej Festiwalu Pol’and’Rock, ale to akurat detal bez znaczenia). Znalazłem pierwszy post od góry i skopiowałem prowadzący do niego link. Istotnie, miał w sobie pfbid. Jak wszystkie od pewnego czasu.
Następnie napisałem do znajomego – dzięki za pomoc, S! – z prośbą o znalezienie tego samego posta i sprawdzenie, jaki link mu się pokazuje.
Wysłałem mu wyłącznie nazwę strony oraz screena pokazującego post, który mnie interesuje. W żadnym miejscu nie podawałem bezpośredniego odnośnika. Żeby Facebook nie mógł się nim zasugerować.
Znajomy zdobył link i wkleił mi go w wiadomość. Taki sam, jaki pokazywał się mnie. Wniosek: Facebook nie mógłby użyć wartości pfbid do odróżnienia nas od siebie.
Ale to dowód anegdotyczny. Może Fejs wdraża zmiany stopniowo, a linki identyfikujące ludzi jeszcze do nas nie dotarły? Reakcję w postaci emotki serca też w końcu dostałem później niż znajomi.
Opinie innych
Zarówno pod pierwotnym artykułem na Ghacks, jak też w wątku na forum HackerNews, pojawiły się komentarze twierdzące, iż widzą taki sam link jak autor i nie dostali nic innego.
Znalazłem też interesujący wpis z polemiką. Autor, Michael Nelson, również nie potwierdza, jakoby linki umożliwiały rozróżnianie między ludźmi. Zauważa natomiast trzy bardzo interesujące rzeczy:
- Zmiana weszła w okolicach 4 kwietnia. Odkrył to, przeszukując archiwa internetowe pod kątem tekstu pfbid;
-
W nowym systemie może istnieć kilka różnych linków do tego samego posta.
Podaje jako przykład trzy różne odnośniki do jednego posta Ghacks. Czarno na białym widzimy, iż pfbid nie jest stały i unikalny na poziomie posta, jak dawne identyfikatory.
-
Zmiana prawdopodobnie uderzy w archiwa internetowe.
X znajduje na forum link do kontrowersyjnego posta na Facebooku. Próbuje w niego wejść, ale post już został usunięty.
No ale na pewno ktoś wrzucił taką perełkę do archiwum, póki jeszcze wisiała? Zatem X wkleja odnośnik w jakieś archive.ph. Wyświetla się informacja, iż nikt nie zarchiwizował takiej strony.
Mimo iż tak naprawdę jak najbardziej jest w archiwum. Tylko iż pod innym linkiem – takim, jaki widziała osoba archiwizująca w chwili kopiowania. Innym niż ten na forum.
Wnioski
Jeśli linki nie identyfikują ludzi, ale mają więcej niż jeden wariant… to czym mogą być?
Facebook wysłał do Ghacks oświadczenie, dostępne pod pierwotnym artykułem. Piszą, iż nowe linki to zabezpieczenie przeciw scrapingowi (automatycznemu pobieraniu danych).
OK. Kłamstwo w tej kwestii byłoby ryzykowne, więc załóżmy iż mówią prawdę.
Ale czy istnieje techniczna możliwość, iż kiedyś mogłoby się to rozwinąć w metodę identyfikacji konkretnych osób? Moim zdaniem niestety tak. Policzmy to sobie:
- Dawniej identyfikator posta miał długość 16 znaków. Wyłącznie cyfr, co dawało 10 możliwych wartości na każdy znak.
-
Teraz ma długość 67 znaków, nie licząc pfbid stojącego zawsze na początku.
Oprócz cyfr może się składać z wielkich i małych liter. To łącznie 62 możliwości na każdy znak.abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
Upewniłem się, iż w takim wypadku liczba możliwych wariantów to 6267. To bardzo duża liczba, ma 121 cyfr. Wiele pomieści.
Do tego linki są tak zbudowane, iż identyfikator jest umieszczony po nazwie strony:
Zatem pfbid nie musi mieścić w sobie wszystkich linków dla wszystkich użytkowników, na wszystkich stronach. Tylko znacznie mniejszą liczbę.
To intuicja, bo ekspertem nie jestem. Ale wydaje mi się, iż gdyby Facebook chciał, to mógłby przejść do linków unikalnych na poziomie ludzi. Rozszerzyć ich rzekomo obronne funkcje. Tu i teraz, bez kolejnej zmiany formatu. A z naszego punktu widzenia zmiana byłaby cicha i niezauważalna.
Co więcej – takich identyfikatorów nie dałoby się usuwać. Spróbowalibyśmy to zmienić na inny ciąg znaków? Popsulibyśmy link, prowadziłby do nieistniejącej strony. Zostawilibysmy? To by nas identyfikowało.
Stare linki
Nowe linki zostały z nami jak uśpieni agenci, którzy może okażą kiedyś szpiegowską naturę. A może nie zdążą, nim portal całkiem odpłynie ku Metawersum.
W tej całej aferze wiele osób pomija jednak jedną zasadniczą kwestię – Facebook już wcześniej mógł śledzić użytkowników poprzez linki.
Pokażę tu kilka dodawanych do nich informacji, które pozwalają zarówno Facebookowi, jak i jego partnerom rozpoznawać konkretne osoby.
Parametry
Najpierw krótko i zwięźle o tym, czym są parametry w linkach.
Znajdują się na końcu, po znaku zapytania. Są od siebie oddzielone znakami &. Każdy z nich ma format nazwa=wartość.
Gdybyśmy na przykład skopiowali link do jakiegoś wpisu z Ciemnej Strony i dopisali na końcu ?powitanie=hej, to nic by się nie stało. Serwer by to przyjął, ale olał i po prostu zaserwował wpis, do którego prowadzi nasz odnośnik. To dlatego, iż parametry są opcjonalne.
Ale niektóre parametry mają znaczenie. Kiedy serwer je wyłapie, to analizuje zawarte w nich informacje. Pod długim, niezrozumiałym ciągiem znaków może się na przykład ukrywać nazwa konkretnego użytkownika.
Jeśli chcemy dowiedzieć się czegoś więcej w temacie, to zapraszam do wpisu o parametrach z „Internetowej inwigilacji”. A teraz przejdźmy do przykładów z samego Facebooka.
Linki do stron zewnętrznych
Niektóre strony internetowe żyją z Facebookiem w symbiozie. Płacą portalowi za to, iż umieści u siebie reklamy odsyłające do ich strony.
Często link ukryty w takiej reklamie zawiera parametry specjalne, zaczynające się od utm. Mówią firmie, iż dany użytkownik przychodzi z Facebooka. Taki odpowiednik pytania „Skąd pan(-i) o nas usłyszał(-a)” z ankiety, tyle iż to cyfrowe i dzieje się w tle. Raczej niegroźna rzecz.
Czasem jednak do linków jest dodawany parametr fbclid, który już wskazuje konkretnego użytkownika. Nie z imienia i nazwiska. Ale pokazuje firmie, iż pewne reklamy klika jedna i ta sama osoba.
A jeżeli kiedyś dokona zakupu na stronie, to numer zyska tożsamość. Firma będzie wiedziała, do czego dany klient ma słabość.
Choć parametry z założenia mają być opcjonalne, a serwery powinny ignorować nieznane wartości… rzeczywistość bywa inna.
Zdarzyło się przez to, iż kiedy Facebook dodawał po cichu parametr fbclid do umieszczanych u siebie linków – na początku do wszystkich – to odnośniki te przestawały działać. Serwery nie wiedziały, co z nimi zrobić.
Autor z Ghacks nie ma racji, pisząc iż nowy format linków zastępuje parametry fbclid. Te drugie nigdzie się nie ruszyły.
Zaś nowy, pfbid, w ogóle nie dotyczy odnośników prowadzących poza teren Facebooka. Odnosi się wyłącznie do publikowanych na nim postów.
Linki do postów
Poza nowym pfbid są jeszcze dwie rzeczy, które goszczą w linkach prowadzących do postów na Facebooku. Obie z nich to parametry.
Jednym z tych parametrów jest __tn__. Ale wydaje mi się zbyt krótki i powtarzalny, żeby mógł jakoś realnie nas identyfikować.
Znacznie gorszą sprawą jest parametr __cft[0]__. Pozwolę sobie nazywać go krótko „parametrem cft”. To ten najdłuższy ciąg znaków, jaki znajdziemy w linku. Moim zdaniem to jego powinniśmy się najbardziej obawiać, mógłby nas jednoznacznie identyfikować.
Już od jakiegoś czasu interesuję się tym parametrem. O jego usuwaniu pisałem między innymi we wpisie o walce z trollami, a także we wspomnianym wyżej wprowadzeniu do parametrów.
Dotychczasowe fakty, jakie odkryłem na jego temat:
- Ktoś pytał o niego na słynnym forum StackOverflow, ale nie dostał odpowiedzi.
- Dodawany przez Facebooka do niemal wszystkich linków do postów. A także do komentarzy pod nimi.
- Nie jest dodawany m.in. do filmów, te mają format <PROFIL>/videos/<LICZBA>. Ani do komentarzy pod nimi.
- Jego wartość ma długość 216 znaków.
-
Sam początek regularny, często (zawsze?) zaczyna się od liter AZ. Trzecia litera to często coś z dalszej części alfabetu. U, V, W, X…
Przykład? Wystąpienia na forum Hacker News. - Reszta tekstu wydaje się losowa. Składa się z liter, cyfr, znaków _ oraz -.
-
Zmienia się za każdym razem, kiedy odświeżamy stronę.
Prosty eksperyment: wejdźmy na komputerze na swój własny profil, skopiujmy gdzieś link do pierwszego posta, naciśnijmy F5, porównajmy. Trzon będzie ten sam, ale cft każdorazowo się zmieni.
Wniosek? prawdopodobnie zawiera w sobie jakiś znacznik czasu. Oczywiście oprócz tego może tam być informacja o konkretnym użytkowniku. -
Przez te wszystkie kreski i nawiasy trudno go znaleźć w wyszukiwarkach, które zwykle wycinają takie elementy. Proponuję szukać poprzez wpisywanie:
"facebook" "cft". - Można bezpiecznie usuwać go z linków. przez cały czas będą prowadziły do tego posta, do którego miały. Z tn tak samo.
Ogólnie sprawa tajemnicza i nieco podejrzana. Ale ostatni punkt dodaje otuchy.
Kwestia marnotrawstwa
Niezależnie od celu linków możemy się zastanowić nad ich sensownością.
W lwiej części przypadków zapewne niczego cennego Fejsowi nie przyniosły. Wyobrażam sobie, iż wiele osób udostępniło je co najwyżej swoim znajomym przez Messengera. Który i tak jest własnością FB, więc znają tożsamość udostępniaczy.
A jednak Facebook mocno nadmuchał swoje linki:
- Identyfikator z pfbid liczy 72 znaki, czyli o 56 więcej niż poprzednie.
- Sam parametr cft to 227 znaków (pełna nazwa + wartość).
- Parametr tn to 16 znaków (nazwa + wartość)
- Obecność powyższej dwójki oznacza też znak zapytania i łącznik. 2 kolejne znaki.
Łącznie każdy link Facebooka rozdyma się o 301 znaków. Z czego 245 – te związane z parametrami – da się bezkarnie usuwać.
Problem w tym, iż mało kto o tym wie. I linki są udostępniane w postaci nieoczyszczonej – na samym Facebooku, Messengerze, stronkach całkiem zewnętrznych.
Wyobraźmy sobie, ile się tego nazbiera w skali świata. Ile giga- albo terabajtów zostanie zapchanych samymi tylko wartościami cft oraz tn.
Oczywiście, iż w skali świata to kropla w morzu. Nie ma co wyobrażać sobie kominów i dymu pochodzącego za spalanych fejsowych parametrów.
Ale firmy lubią nam mówić, iż każda, najdrobniejsza rzecz coś zmienia. Jak w takim kontekście ocenić Facebooka? Czy nie dokłada cegiełki do kultu cyfrowego marnotrawstwa?
Zostawiam to pod rozwagę. A jeżeli my nie chcemy marnowania miejsca na dyskach – albo śledzenia – to usuwajmy parametry. Poniżej dokładniejsze wskazówki.
Porady
Usuwanie śmieciowych parametrów
Mam tu na myśli cft, tn oraz fbclid.
Po prostu je usuwamy, mam nadzieję iż pomogłem :smile: Dzięki temu linki będą schludniejsze, a my mniej śledzeni.
Mając link do posta, możemy skopiować go do jakiegoś notatnika, wypatrzyć __cft i usunąć wszystko od tego tekstu (wraz z nim) aż do końca.
Rzadko bo rzadko, ale czasem trafiają się parametry story_fbid=X oraz id=X wskazujące konkretne posty. Więc lepiej nie ciąć tak całkiem wszystkiego, od znaku zapytania do końca.
Jeśli chcemy zalinkować do konkretnych komentarzy (raczej rzadka potrzeba), musimy ponadto pozostawić parametry comment_id=X oraz reply_comment_id=X.
W każdym przypadku, zostawiając jakieś parametry, zostawiamy też znak zapytania na początku oraz ewentualne znaki & między nimi.
Przy stronach zewnętrznych nie ma jednej reguły, a parametry bywają potrzebne. Ale ogólnie zawsze możemy bezpiecznie usuwać fbclid=X oraz parametry zaczynające się od utm_.
Nowsze wersje Firefoksa same usuwają znane szkodniki wśród parametrów.
Można również skorzystać z dodatku do przeglądarki takiego jak ClearURLs. Korzysta ze znanych list nielubianych parametrów i automatycznie je usuwa, kiedy klikamy w linki. Ma wersje na Firefoksa oraz na Chrome’a i oparte na nim przeglądarki.
Rozwiązanie problemów z pfbid
Znalazłem na nowe linki pewien trik, który omawiam pod sam koniec. Ale na razie załóżmy, iż nie działa, a one po cichu nabyły możliwość śledzenia.
Co w takim wypadku zrobić, jeżeli absolutnie musimy udostępnić link z Fejsa, a nie chcemy go wiązać z naszą tożsamością?
Zapewne pomogłoby pozyskanie go przez fejkowe konto, trzymane z dala od naszego głównego. Najlepiej odwiedzane przez całkiem osobny komputer, z własnym połączeniem internetowym. Jak taki z czytelni bibliotecznej.
Inna opcja? Zamiast wrzucać bezpośrednie linki, możemy robić screeny albo cytować tekst posta, którym chcemy się podzielić. jeżeli chcemy dodatkowo wskazać źródło, to można wrzucić:
- adres profilu, który dodał danego posta;
- datę jego dodania;
- fragment tekstu, który pozwoliłby go wyszukać.
Przy tylu informacjach osoba zainteresowana mogłaby łatwo znaleźć wskazanego posta. A gdyby zainteresowana nie była, to choćby link bezpośredni by nie pomógł.
Jeśli archiwizujemy treści z FB, to umieszczajmy w jakimś miejscu (na przykład w osobnym wpisie na Twitterze) informację łączącą link z treścią, jakimś fragmentem tekstu itp. Żeby poszukiwacze mieli kilka sposobów dotarcia do źródła.
Przydałaby się też kooperacja ze strony archiwów – możliwość tagowania znalezisk, przeszukiwania po tekście itp. Żeby linki nie były jedynym sposobem uzyskania dostępu.
Podsumowanie
Widzimy, iż nowe linki Facebooka na razie kilka zmieniają, a sensacja była nieco na wyrost. Ale będą nam wisiały nad głowami jak miecz Damoklesa i możliwe, iż jeszcze pokażą ciemną stronę. W takim wypadku pozostaną fejkowe konta albo odsyłanie do źródeł w sposób opisowy.
W związku z całą sytuacją do głowy przyszedł mi pomysł na amatorski system ostrzegający przed taką zmianą.
Można co pewien czas pobierać swoje dane przez domyślne opcje Facebooka. W tym – wszystkie wrzucone przez siebie posty. Następnie porównywać linki. Patrzeć, czy pfbid ulega zmianom. Sprawdzać, czy znajomi widzą to samo.
Chętnie zrobię do tego jakiś skrypt, ale to już temat na ewentualny przyszły wpis.
A skoro o wpisach mowa… to oficjalnie mój wpis numer 50 na stronie głównej bloga :smile:
Kolejny cel – okrągła setka. Mam nadzieję, iż jeszcze się tu spotkamy w drodze do niej!
Bonus: powrót do dawnego formatu
Przeglądając wątek na HackerNews, znalazłem prawdziwy skarb – sposób na skonwertowanie linków w nowym stylu na wersję dawną, pozbawioną pfbid. Wymaga szczypty zachodu, więc zostawiłem go na koniec.
W tym celu kopiujemy cały taki link. Możemy z niego usunąć parametry.
Musimy teraz zamienić go na bezpieczną postać, zastępując dwukropek i ukośniki. Można choćby zwykłą opcją Znajdź i zamień.
/ na %2F. : na %3A.
Następnie wklejamy go zamiast czerwonego tekstu LINK w poniższym adresie:
Całość wklejamy do paska przeglądarki. W tej wersji link przykładowy z początku wpisu wyglądałby tak:
Kiedy w to wejdziemy, to zobaczymy sam post, bez reszty interfejsu. choćby jeżeli nie jesteśmy zalogowani na konto. A po najechaniu na jego datę dodania zobaczymy link w starym dobrym stylu. Można go sobie skopiować na później.
Albo nazbierać przykładów i spróbować rozgryźć, jakiego mechanizmu używa FB do konwersji z nowych na stare.
Oczywiście bardzo możliwe, iż z czasem usuną tę furtkę. Więc cieszmy się nią, póki jest!