Cloaker dla Google

Kamil Mlonek 29 lipca 2021

Realizacja narzędzia pozwalającego na ukrywanie zawartości strony przed robotami Google.

Klient zgłosił się do nas z prośbą o wykonanie autorskiego cloakera linków. Na samym wstępie wypadałoby zaznaczyć czym jest owy cloaker. To narzędzie pozwalające na ukrycie faktycznej zawartości strony przed robotami Google, Facebook czy innymi. Stosuje się go głównie w przypadku promowania linków z sieci afiliacyjnych w kampaniach reklamowych social media, ale ma też inne zastosowania.

Na etapie ustaleń okazało się, że zleceniodawca dysponuje już podobnym narzędziem, jednak zostało ono zaszyfrowane, a w dodatku znajdowało się na zewnętrznym serwerze, do którego nie miał dostępu, przez co utracił możliwość manipulacji, tudzież swodobnego zarządzania. Przed rozpoczęciem prac otrzymaliśmy od klienta szczegółową specyfikację techniczną, która pozwoliła nam opracować odpowiednie rozwiązania. Zakładała ona między innymi wdrożenie funkcji tożsamych z poprzednim projektem, tj. panel administratora, możliwość dodawania, edycji i usuwania obsługiwanych stron, czy automatyczne wykrywanie adresów IP robotów Google i Facebook oraz zapisywanie ich do bazy danych. W dodatku aplikacja miała być wieloplatformowa, ściślej mówiąc – współpracować zarówno z dowolnie “napisaną” stroną oraz jednym z najpopularniejszych systemów CMS WordPress.

Najbardziej skomplikowaną logiką projektu było wychwycenie i odróżnienie robota od fizycznego użytkownika oraz ekstrakcja jego adresu IP. Z racji doświadczenia i faktu, że spotykaliśmy się wielokrotnie z podobną problematyką wiedzieliśmy już na etapie konsultacji w jaki sposób jesteśmy w stanie to rozwiązać. Dodatkowym problemem, który musieliśmy przepracować to fakt, że narzędzie mogło działać tylko na stronach dodanych i aktywowanych za pomocą dedykowanego panelu administracyjnego, a w dodatku być kompatybilne z dowolną stroną oraz WordPress.

Zastosowaliśmy filtrację user-agent jako warunek kwalifikujący zapis adresu IP (musieliśmy dodatkowo uwzględnić możliwość istnienia Cloudflare i pobrać prawdziwy adres) oraz przekierowanie robota do safe-page. W celu realizacji wieloplatformowości, stworzyliśmy dedykowane API (REST), dla komunikacji panelu administracyjnego z każdą istniejącą witryna. Dla rozwiązania podstawowego, używany jest specjalnie generowany plik komunikacyjny z automatycznie nadawanym sekretem, natomiast WordPress otrzymał dedykowaną wtyczkę. Cały projekt został napisany w języku PHP, przy użyciu wzorca projektowego MVC (Model View Controller) zaimplementowanego do autorskiego mini-frameworka.

Mockup psd created by freepik – www.freepik.com