John Mueller ukrył robots.txt w pliku audio
Branży SEO postaci Johna Muellera nie trzeba nikomu przedstawiać. Chyba każdy wie, że John ma dosyć niecodzienne podejście do pliku robots.txt. Kiedyś całkiem dużą sensację wzbudziło ustawienie disallow: /robots.txt oraz wielkość pliku robots.txt. John Mueller napisał obszerne wytłumaczenie na LinkedIn ale to już stary temat.
Raz na jakiś czas sprawdzam sobie plik robots na stronie Johna Mullera, bo można się nieco zdziwić. Rano, środa, 14.08.2024 wchodzę pod adres johnmu.com/robots.txt by zobaczyć czy coś się zmieniło i o dziwo nic – plik mi się nie wyświetlił. Wchodzę ponownie i dopiero za drugim razem zauważyłem, że pobrało mi plik w formacie *.wav. Mówię sobie niemożliwe, odpalam go i słyszę robots w formacie audio 🤯 (korzystam z firefox, na chrome odtwarza w przeglądarce).
Pomyślałem więc, że sprawdzę czy Google Search Console może czytać, a nawet robić transkrypcję audio. Plik który mi pobrało wrzuciłem na swoją stronę. Linijka kodu w .htaccess żeby umożliwić taką magię jaką zrobił John u siebie
RewriteRule ^robots\.txt$ robots.wav [L,R=301]Profilaktyczne czyszczenie cache i prośba w GSC o przeskanowanie nowego pliku robots.txt. Ku mojemu zdziwieniu, patrzę i nie dowierzam. Widzę linijki z pliku robots, które John czytał! Chociaż moją uwagę zwróciła ostatnia linijka. Zaintrygowany edytowałem plik audio w Notepad++ (swoją drogą najlepszy notatnik!) i okazuje się, że John Mueller dodatkowo wykorzystał technikę steganografii (wikipedia), czyli ukrywanie informacji w innym pliku i stąd ta różnica między tym co słychać na nagraniu, a zawartością w GSC.
| Transkrypcja pliku robots.txt | Ukryty robots.txt w pliku audio |
|---|---|
| #enjoy Sitemap: https://johnmu.com/sitemap.xml User-agent: Googlebot User-agent: Bingbot User-agent: DuckDuckBot User-agent: Slurp Disallow: /robots.txt Disallow: /nofollow/ User-agent: SemrushBot Disallow: / User-agent: DotBot Disallow: / User-agent: Quantify Disallow: / User-agent: ZoomInfoRobot Disallow: / User-agent: Voltron Disallow: / User-agent: AhrefsBot Disallow: / User-agent: * Disallow: / Disallow: /comment/feed Disallow: /robots.txt Disallow: /nofollow Disallow: /TB Disallow: /coffeetime Disallow: /GoogleHoney #this was a real robots.txt file, thank you and goodbye | #enjoy sitemap: https://johnmu.com/sitemap.xml user-agent: Googlebot user-agent: Bingbot user-agent: DuckDuckBot user-agent: slurp disallow: /robots.txt disallow: /nofollow/ user-agent: semrushbot disallow: / user-agent: dotbot disallow: / user-agent: qwantify disallow: / user-agent: zoominfobot disallow: / user-agent: voltron disallow: / user-agent: ahrefsbot disallow: / user-agent: * disallow: / disallow: /comments/feed/ disallow: /robots.txt disallow: /nofollow/ disallow: /tb disallow: /coffeetime/ disallow: /googlehoney/ #lolabaotoudenebolassterilizes |
Teza że GSC może robić transkrypcje: OBALONE! ale to nie wszystko 🙂
Próbowałem także sprawdzić, czy GSC może interpretować kod JavaScript umieszczony w robots.txt i uruchamiać go w kontekście XSS. Spreparowałem plik robots.txt tak, aby zawierał kod JavaScript otwierający okno dialogowe (alert). Po przesłaniu go do Google Search Console i nie zobaczyłem żadnej interakcji (tego oczekiwałem) ale co ciekawe, mimo że plik faktycznie zawierał treść, GSC zwróciło pusty wynik. To jedynie potwierdza, że GSC traktuje robots.txt jako czysty plik tekstowy i nie renderuje go w sposób umożliwiający wykonanie skryptów. Moja hipoteza jest taka, że narzędzie Google nie parsuje robots.txt jak przeglądarka, a zamiast tego pobiera go w surowej formie i prezentuje użytkownikowi jak notatnik.
Gdyby ktoś próbował się pobawić w ukrywanie tekstu czy plików, to możliwości jest kilka, np.:
- Start -> CMD -> echo tekst do ukrycia >> robots.wav
- Programem DeepSound do znalezienia na githubie: https://github.com/Jpinsoft/DeepSound
Na zakończenie warto podkreślić, że to co zrobił John, jest doskonałym przykładem nieszablonowego myślenia w SEO. Lubię kreatywne testy, ale nie wpadłem na to, by zamienić plik tekstowy na audio i jeszcze ukryć w nim komendy robots!
Panie John chapeau bas, czekam z niecierpliwością na kolejne testy!
Jestem też podekscytowany faktem, że nikt przede mną tego nie upublicznił! Guglowałem ale nie znalazłem o tym wzmianki 🙂
Pozdrawiam
