Niechciany pracownik sklepu w twojej przeglądarce

Ostatnio chciałem sprawdzić coś na sklepie Morele.net, i wyskoczyło, mi chyba wszystkim znane, powiadomienie, że sklep chce pozwolenia na wyświetlanie powiadomień. Spiesząc się kliknąłem na „Zezwól” (zwyczajny miss-click). I zaczęło się… Było to jakoś tydzień temu, i od tamtego momentu, prawie przy każdym włączeniu przeglądarki,  oraz w trakcie zwykłego korzystania – np. oglądania YouTube’a, wyświetlają mi się powiadomienia o takie:

Gdyby nie to, że pisałem Omódlmy Net, to w życiu nie wiedziałbym gdzie szukać i jak to wyłączyć. Omódlmy Net to aplikacja typu PWA. Bez wdawania się w szczegóły, to taka aplikacja musi spełniać pewne wymagania. Po spełnieniu tych wymagań, normalna „strona internetowa” staje się „aplikacją”. Jednym z tych wymagań jest posiadanie i zarejestrowanie Service Workera.

Niechciany pasażer

Z założenia Service Worker (w dosłownym tłumaczeniu „pracownik serwisu”) ma pomagać w komunikacji między użytkownikiem (tobą i mną), a serwerem. To trochę jak doradca finansowy. Możesz sam rozmawiać bezpośrednio z bankiem i próbować wszystko samemu załatwiać, ale wtedy musisz wiedzieć o której bank jest otwarty, z kim rozmawiać o czym, kiedy są godziny sesji itp… A możesz skorzystać z usług wspomnianego doradcy. Wtedy jemu zlecasz co i jak, a to już w jego gestii zajęcie się wspomnianymi wczoraj kwestiami.

W dużym uproszczeniu po to zostały stworzone SW. Np. YouTube działa szybciej dzięki tej technologii. Co więcej, potrafi rozpoznać czy odłączył Ci się Internet (albo masz niestabilne łącze) i odpowiednio działać, aby nie pojawił Ci się jakiś nieznany komunikat błędu itp. To wszystko zasługa właśnie SW.

(Nie)Stety, zostało to pomyślane tak, że SW ma być „transparentny” zarówno dla użytkownika, jak i serwera. Wszystko ma działać niezależnie czy on jest, czy go nie ma. W związku z tym jego rejestracja (instalacja) i aktywacja jest niewidzialna. Po prostu wchodząc na stronę internetową, która deklaruje pod spodem, że używa SW, automatycznie (bez pytania nikogo o zdanie) następuje instalacja. Nieważne, że być może nigdy więcej na tą stronę nie wejdziesz. Stało się. Niczym ósmy pasażer Nostromo.

No i jest jeden mały szkopuł… Ci pracownicy mogą pracować w tle. A skoro mogą pracować w tle, i np. odbierać informacje o reklamach, i w dodatku mają pozwolenie na wyświetlanie powiadomień… No to przepis na upierdliwe reklamy gotowy.

Co mogę zrobić?

Otwieramy listę

Ku mojemu zdziwieniu, zarówno Firefox i Chrome nie dają jawnego i łatwego sposobu na zarządzanie pracownikami. W Firefoxie trzeba wpisać w adres przeglądarki about:serviceworkers i wyświetli się lista wszystkich zarejestrowanych SW. U mnie to 171…

W Chromie to adres chrome://serviceworker-internals

Wyrejestruj

Jeżeli wiemy jaki to sklep, to połowa sukcesu. U mnie wspomniane Morele:

I klikamy przycisk Wyrejestruj.

Natomiast jeżeli nie wiemy, to szukamy tego, który ma coś wpisane w polu pushEndpoint. To z tego źródła pracownik dostaje informacje o „nowościach” (reklamach).

Jest jeszcze jeden ostatni problem. To wróci. Usunęliśmy pasażera, ale po wejściu na daną stronę (w tym wypadku www.morele.net), SW zostanie ponownie zarejestrowany.

Zapobiegać?

Naturalnym tokiem myślenia jest zatem „ok, no to trzeba zablokować to rejestrowanie”. Tak, ale jak wspomniałem wcześniej – możemy też na tym stracić. Na chociażby płynności działania takich usług jak YouTube czy GMail.  Niestety (przynajmniej na Firefoxie) nie ma możliwości wybiórczego blokowania SW.

Opcja 1: Ukryte ustawienia – wyłączamy całkowicie

W Firefoxie wchodzimy na adres about:config i klikamy przycisk Akceptuję ryzyko. Teraz w polu wyszukiwania wpisujemy dom.serviceWorkers.enabled. Po prawej klikamy w strzałki. Zrobione.

Opcja 2: Ukryte ustawienia – wyłączamy tylko powiadomienia

Ta opcja powoduje, że SW będą nadal włączone, ale będą mogły wyświetlać powiadomienia, wyłącznie wtedy, kiedy będziemy na danej stronie. Czyli Morele będzie mogło wyświetlać powiadomienia (reklamy) tylko wtedy, kiedy będę na ich sklepie.

W Firefoxie wchodzimy na adres about:config i klikamy przycisk Akceptuję ryzyko. Teraz w polu wyszukiwania wpisujemy dom.webnotifications.serviceworker.enabled. Po prawej klikamy w strzałki. Zrobione.

Opcja 3: Instalujemy wtyczkę

Wchodzimy na https://addons.mozilla.org/pl/firefox/addon/block-service-workers/ i klikamy przycisk Dodaj do Firefox.

A następnie potwierdzamy przez kliknięcie Dodaj.

Zrobione.

 

Obsługa FTP znika z Firefoxa

W trakcie, gdy pracowałem nad postawieniem Alpine Linux na Pandaboardzie, potrzebowałem szybko pobrać kilka plików z serwera FTP polskiego mirrora dla tejże dystrybucji linuxa. Wtem pojawiło się takie onkienko:

Myślę sobie „O co chodzi?”, przecież Firefox zawsze pięknie listował zawartość serwera FTP pozwalając na łatwe przeglądanie i pobieranie plików. Po krótkich poszukiwaniach dowiedziałem się, że od wersji 88 przeglądarki, obsługa FTP nadal jest wbudowana, ale domyślnie wyłączona. Natomiast Mozilla na swoim blogu poinformowała, że od wersji 90 zniknie całkowicie.

Wydawca tłumaczy się, że FTP jest już bardzo przestarzałą technologią i chodzi o bezpieczeństwo użytkowników.

No i ok. FTP jest już mega stare (starsze chyba od wszystkich, którzy czytają tego bloga – pierwsze wydanie w 1971 roku). Ale nadal używamy bardzo dużo starych i niebezpiecznych technologii. Chociażby SMSy. Wiadomości są nieszyfrowane. Czyli posiadając radio umożliwiające nasłuchiwanie na częstotliwościach 2G i 3G (bo zakładam, że nadal część ludzi nie ma komórek z 4G, nie mówiąc „rakotwórczym” o 5G) każdy użytkownik jest w stanie przeczytać wszystkie wiadomości, jakie „lecą” do/z komórek wokół niego. Ale jakoś nadal używamy SMSów.

Moim zdaniem Mozilla po prostu szukała argumentu jak pozbyć się z kodu niewygodnej funkcjonalności, której nie chce im się już wspierać (i tym samym łatać jej dziur). Co z resztą pokrywałoby się z „bezpieczeństwem użytkowników” o którym mówią.

Dobra wiadomość? Dla przeciętnego użytkownika nic się nie zmieni. Jeszcze nie widziałem, żeby jakiś zwykły użytkownik szukał czegoś na serwerach lustrzanych. Raczej wszyscy aktualnie wystawiają wszystko przez HTTP. A że HTTP już też jest „be”, to zdecydowana większość ruchu sieciowego leci już przez HTTPS. A tzw. power userzy? No cóż, oni umieją doinstalować sobie i używać zewnętrznego klienta FTP takiego jak FileZilla czy WinSCP.

A, no i ponieważ w wersji 88 i 89 ta funkcja jeszcze jest wbudowana, to wystarczy wejść w about:config, poszukać właściwości network.ftp.enabled i przestawić na true.

Ja tak zrobiłem i jeszcze przez dwie wersje zrobię na złość Mozilli 😀