Kto jeszcze czyta? Zewnętrzne skrypty na stronach z formularzem
Strona z formularzem kontaktowym często ładuje kod od kilku innych firm. Część z nich widzi, co wpisują odwiedzający – a większości nikt w Twoim zespole nigdy nie sprawdził.
Kto wypełnia Twój formularz kontaktowy, zakłada, że wiadomość trafi do Ciebie. Na wielu stronach na tej samej podstronie działają jednak także skrypty dostawców analityki, sieci reklamowych, czatów i wszystkiego, co przez lata nazbierało się w menedżerze tagów. Każdy z tych skryptów ma te same uprawnienia co Twój własny kod: może czytać stronę, obserwować pola formularza i wysyłać dane na własne serwery. Nie znaczy to, że wszystkie to robią. Ale na stronie, na której odwiedzający wpisują imię, adres e-mail, a czasem szczegóły dotyczące zdrowia, pieniędzy czy problemów prawnych, warto wiedzieć, kto jeszcze to czyta.
Zwykli podejrzani
- Narzędzia do session replay nagrywają kliknięcia, przewijanie, a często też naciśnięcia klawiszy, żeby wizytę dało się później odtworzyć. Jeśli pola nie są maskowane, nagranie może obejmować to, co ktoś wpisuje w formularz.
- Piksele reklamowe i analityczne zgłaszają odsłony i konwersje firmom trzecim – na samej stronie z formularzem i bardzo często na stronie z podziękowaniem.
- Widżety czatu ładują całą aplikację z obcej domeny, zwykle na każdej podstronie, a więc także na tej z formularzem.
- Menedżery tagów pozwalają marketingowi dodawać skrypty bez wdrożenia. Wygodne, ale w ten sposób na stronę z formularzem może trafić kod, którego nikt nie przejrzał.
- Mniejsi pomocnicy – testy A/B, mapy ciepła, osadzone treści z mediów społecznościowych, fonty, mapy – każdy dokłada host, który dostaje co najmniej adres IP odwiedzającego i zwykle adres Twojej strony; te z nich, które są skryptami, mogą też odczytać pełny adres URL podstrony.
Session replay: rejestrator obok pola formularza
Większość narzędzi do session replay ma ustawienia do maskowania pól albo wyłączania całych obszarów z nagrania, a niektóre domyślnie maskują wybrane pola. Słabe punkty to wyjątki: pole na treść wiadomości, którego ustawienia domyślne nie obejmują, formularz zbudowany z komponentów, których reguły maskowania nie rozpoznają, albo opcja wyłączona na czas szukania błędu i nigdy nie włączona z powrotem. Wtedy nagranie przechowywane u firmy trzeciej może zawierać dokładnie to, co odwiedzający do Ciebie napisał – czego się nie spodziewał i czego Twoja polityka prywatności, która zgodnie z art. 13 RODO musi wskazywać odbiorców lub kategorie odbiorców danych osobowych, może w ogóle nie wspominać.
Piksele i strona z podziękowaniem
Śledzenie konwersji potrzebuje sygnału, że formularz został wysłany, a strona z podziękowaniem to oczywiste miejsce, żeby go wysłać. Większość pikseli przy każdym zdarzeniu przesyła pełny adres strony. Jeśli formularz wysyła dane metodą GET albo przekierowanie po wysłaniu dokleja do adresu wartości w rodzaju ?name=…&email=…, trafiają one prosto do dostawcy reklam lub analityki. Niektóre piksele mają też funkcje, które automatycznie pobierają z formularzy adresy e-mail lub numery telefonów, żeby lepiej dopasować użytkowników. A jeśli piksel odpala się, zanim odwiedzający odpowie na baner cookies – albo po tym, jak odmówił – problem przestaje być wyłącznie techniczny.
Menedżery tagów, zgody i łańcuch dostaw
To w menedżerze tagów najczęściej gubi się obraz całości. Tag kampanii sprzed dwóch lat na targi, test narzędzia do map ciepła, piksel sieci, z której nikt już nie korzysta – wszystko to może nadal ładować się na każdej podstronie, także tej z formularzem. Wyzwalacze często są ustawione na „wszystkie strony”, a reguły zgód konfiguruje się osobno dla każdego tagu. Wystarczy więc jeden tag bez właściwego warunku, żeby skrypt załadował się, zanim odwiedzający wyrazi zgodę.
Do tego dochodzi łańcuch dostaw. Gdy osadzasz skrypt z obcego hosta, ufasz temu, kto kontroluje ten host dziś i w przyszłości. Dostawca może zmienić działanie swojego skryptu, zostać sprzedany albo paść ofiarą włamania do infrastruktury, z której serwuje pliki. Przeglądarka nie odróżni legalnego skryptu od zmanipulowanego, więc wstrzyknięty kod na stronie z formularzem może odczytać każde pole i wysłać je dokąd chce – według tego samego schematu co skimming na stronach płatności.
Co możesz zrobić
- 1Zrób inwentaryzację. Otwórz każdą stronę z formularzem i jej stronę z podziękowaniem w narzędziach deweloperskich przeglądarki, sprawdź kartę Sieć i spisz każdy zewnętrzny host. Raz bez zgody, raz po zaakceptowaniu banera.
- 2Usuń to, czego nikt nie potrzebuje. Tagi bez jasnego właściciela i celu to kandydaci do usunięcia. Ogranicz wyzwalacze w menedżerze tagów tak, żeby na stronach z formularzem działało tylko to, co musi.
- 3Maskuj pola w narzędziach replay. Maskuj wszystkie pola formularza, nie tylko hasła, a jeśli się da, wyłącz z nagrania cały obszar formularza. Potem obejrzyj nagranie i sprawdź, co faktycznie zostało zapisane.
- 4Wysyłaj konwersje bez danych osobowych. Wysyłaj formularz metodą POST, nie umieszczaj wartości z formularza w adresach przekierowań i odpalaj neutralne zdarzenie, np. „contact_form_sent”. Wyłącz w pikselach automatyczne pobieranie pól formularza.
- 5Ładuj dopiero po zgodzie. Skrypty, które wymagają zgody, nie mogą się załadować, zanim odwiedzający ją wyrazi – i muszą pozostać wyłączone, jeśli odmówi. Przetestuj obie ścieżki.
- 6Przypnij i ogranicz, gdzie się da. Subresource Integrity (skrót kryptograficzny w tagu script) sprawia, że przeglądarka odrzuci statyczny plik, który się zmienił; nie nadaje się to do skryptów, które zmieniają się z założenia, jak menedżery tagów. Content Security Policy określa, z jakich hostów w ogóle mogą działać skrypty – zacznij w trybie report-only, żeby zobaczyć, co by przestało działać.
- 7Pilnuj zmian. Nowy host skryptów na stronie z formularzem powinien być świadomą decyzją, a nie niespodzianką. Zadbaj o to, żeby dostać powiadomienie, gdy się pojawi.
formexposed sprawdza, które piksele śledzące odpalają się na Twoich stronach z formularzem, czy narzędzie do session replay może nagrywać wpisywane dane i czy odrzucenie banera cookies naprawdę zatrzymuje śledzenie – pasywnie, nic nie zostaje wysłane. Darmowe sprawdzenie pokazuje ogólny poziom, a te wyniki zawiera pełny raport. Przy monitoringu zweryfikowanej domeny formexposed powiadomi Cię też, gdy na stronie z formularzem pojawi się nowy host skryptów.