Продолжаем проходить различные «квесты» и «пазлы» на просторах интернета. На этот раз в руки мне попался https://hiddenkeywords.com/ Это испытание было создано студией Propellernet — студия маркетингового консалтинга из Англии.

Немного о себе
Я уже писал, что никак не связан с SEO или поисковой оптимизацией, а сейчас занимаюсь Машинным обучением. Тем не менее, в детстве мне были интересны вопросы работы сайтов в разных аспектах, так сказать. С того времени осталось немного в голове, помноженное умением беглого гугления. Так что извиняюсь, если кого обидел своим абсолютно ламерским подходом к SEO, к которому я скорее имею отношение только постольку поскольку.
Откуда и зачем я вообще занялся разгадыванием задач? Это все благодаря Левашову Игорю (Ссылка на его страницу), с которым мы познакомились в чате, посвященному Цифровому прорыву. Там меня взяли на слабо, а дальше завертелось. По его же наводке я проходил и technicalseo.expert из предыдущих статей на Хабре. Надеюсь, продолжу и дальше решать задачки, если мне не изменяет память, то у него есть еще подобные.
Предупреждение!
Если кто-то хочет лично пройти этот челендж — дальше читать противопоказано. Будут скрины и тексты.
Если вы не боитесь спойлеров — поехали!
Инструменты
Все уровни были пройдены с открытым Developers tools на Chrome. Там можно и html страницы поглядеть, и на responce полюбоваться. Так же были использовано немного стороннего софта, но о нем чуть позже, пусть это останется интригой.
Встречают по одежке
Нас встречает приятный сайт в темной теме. Достаточно стандартно. Почти сразу нас вводят в курс дела: на сайте спрятано 20 спрятанных фраз. Именно их мы и будем искать!

Теперь заглянем во внутренности! Полную страницу не буду приводить сразу, а медленно будем исследовать содержимое. Тем не менее, покажу пока самое интересное для нас: тут есть подсказки к этим спрятанным словам.
<div class="results"> <div class="number clue" data-tippy-content="?">1</div> <div class="number clue" data-tippy-content="The keyword is here">2</div> <div class="number clue" data-tippy-content="?">3</div> <div class="number clue" data-tippy-content="?">4</div> <div class="number clue" data-tippy-content="Inspect this">5</div> <div class="number clue" data-tippy-content="?">6</div> <div class="number clue" data-tippy-content="x-?">7</div> <div class="number clue" data-tippy-content="13th August, 2019">8</div> <div class="number clue" data-tippy-content="?">9</div> <div class="number clue" data-tippy-content="?">10</div> <div class="number clue" data-tippy-content="?">11</div> <div class="number clue" data-tippy-content="bingo">12</div> <div class="number clue" data-tippy-content="?">13</div> <div class="number clue" data-tippy-content="ld+json">14</div> <div class="number clue" data-tippy-content="?">15</div> <div class="number clue" data-tippy-content="Try searching">16</div> <div class="number clue" data-tippy-content="?">17</div> <div class="number clue" data-tippy-content="?">18</div> <div class="number clue" data-tippy-content="??">19</div> <div class="number clue" data-tippy-content="?">20</div> </div>
Намеки. Какие-то очевидные, какие-то не совсем. Тем не менее, я буду описывать решения не в хронологическом порядке, иногда оставляя ремарки о том как быстро получилось разгадать ту или иную задачу. На все прохождение я потратил астрономически 3 дня, приступив к игре утром 3 мая.
Первые разгадки
Думаю, многие уже догадались минимум о четвертом слове: печенка уж слишком явно намекает. Но дойдем и до cookies, а пока первый шаг для всего SEO — проверка robots.txt

Вводим слово museum и…
Немного картинок


И внезапно решено первое слово. Действительно, любой SEO-забег начинается с robots.txt
Вторая задача кажется сложнее: «The keyword is here», но это только на первый взгляд. Давайте присмотримся получше к надписи по Hello

<div class="description fadeout" id="desc"> <h1>Hello</h1> <p>This is a puzzle for technical SEOs.</p> <p>There are twenty hidden keywords.<span class="likethis">One of them is here.</span> Can you find them?</p> </div>
Так, думаю, стало виднее, а именно странный кусок <span class=»likethis»>One of them is here.</span>
Перебираем все слова здесь и находим заветное here. Второе ключевое слово с нами.
Третье слово мы найдем гораздо позже, ближе к середине расследования, когда нас кинет на несуществующую страницу с кодом ошибки 404. Для это, например, достаточно добавить index.html к ссылке. За одно покончим с еще одной гипотезой, которая не сыграет…

Пока ничего сложного. Пришло время проверять cookie. Переходим в Developers Tool в Google Chrome, открываем вкладку Application, выбираем Storage-Cookies и наш сайт. В итоге видим что-то подобное:

Пробуем и радуемся! Это слово, кстати, было найдено первым, даже не смотря на то, что все остальные рядом тоже были найдены достаточно быстро.
Пятое ключевое слово ждет нас в консоле.

Четверть пути уже пройдено.
Узнаем что-то новое…
Шестой вопрос с подсказкой ? для меня оказался самым сложным. Именно после того, как поддалось это слово на меня посмотрела с той стороны монитора страница с поздравлениями. Чего только я не пытался сделать ради этого: и смотрел и среди графиков загрузки, думая, что там какой-то особый рисунок будет складываться, например, азбукой морзе, и пробовал даже получить что-то через гуглтренды. Замерял работу сайта и скриптов.
Скажу честно — ушел где-то день, пока я не написал Игорю Левашову. Некоторое время мы обсуждали в чате, что же может означать график. Внезапно Игорь сказал, что возможно это какая-то аналитика. Google Analytics!!!!
Начинаем смотреть вызовы скрипта analytics.js — так как он скачивается с сайта Google, то вероятность его модификации минимальная. Тем не менее, пробуем большинство строк, которые кажутся подозрительными — пусто.
Просматриваем параметры запросов — тоже глухо.
Снова целый час ходим вокруг да около. Просматриваем работу скрипта, который скачивает скрипт Google Analytics. Просматриваем под лупой, каждый чих — брекпоинт. НИЧЕГО!
<script> (function(d,r,a,s,t,i,c){d['GoogleAnalyticsObject']=t;d[t]=d[t]||function(){ (d[t].q=d[t].q||[]).push(arguments)},d[t].l=1*new Date();i=r.createElement(a), c=r.getElementsByTagName(a)[0];i.async=1;i.src=s;c.parentNode.insertBefore(i,c) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-145490457-1', 'auto'); ga('send', 'pageview'); </script>
Около получаса я мидитировал над этим кодом и…
function(d,r,a,s,t,i,c){d['GoogleAnalyticsObject']=t
d,r,a,s,t,i,c…
Пробуем! Бинго!
Седьмой подсказкой пользоваться с одной стороны легко. Во вкладке Network смотрим полученные файлы и в hiddenkeywords находим нужный тег:

Проверяем нашу догадку — все верно. Переходим к следующей загадке. Какие манипуляции с датой. Пробую сначала отправить запрос «из прошлого» — никакого эффекта. Гуглим дату — день левшей. Пробуем lefty — снова мимо. Что-то как-то сложновато…
И тут в голову приходит идея — а что если поискать в веб-архиве?

Не так уж и трудно. Теперь лягуха! Я в замешательстве… Пытаюсь загуглить хоть что-то по теме. Первая ссылка в выдаче: Screaming Frog SEO Spider Website Crawler — звучит как план. Скачиваем, предварительно запустив VPN, так как для моего IP почему-то скачивание закрыто, подозреваю, из-за санкций, запускаем.

Пытаемся ввести two — мимо. Как так?! Пытаюсь понять, что же там лягух нашел.

jericho — и это уже срабатывает!
Дальше подсказок никаких нет. Что же делать? Ну раз пошла тема краулеров и пауканов, то что, если попробовать другие? Хронологически примерно так и случилось. Сначала лягух, а потом 10, а чуть позже и 12, но о нем позже.
Меняем User-Agent (этого окажется достаточно, но я был готов накрутить больше настроек) в Chrome, а для этого переходим на вкладку Network conditions. Путем перебора, находим некоторых роботов, начнем с робота Googlebot.

Тадам!

Тадам! Меня заметили!

<div class="description fadeout" id="desc"> <h1>I see you</h1> <p>Pretending you're Googlebot.</p> <p>But you're not. <span class="welldonethough">subterfuge.</span> You're not Googlebot.</p> </div>
Пробуем найденное слово — так и было задумано.
Половина позади. Осталась еще половина!
Давайте теперь посмотрим на ссылку. Чего-то не хватает. А что, если добавить www? Проверяем догадку и ничего не происходит. Или происходит? Лезем в нашу любимую вкладку Network и видим странные вещи.

Пара редиректов. Подозрительно… И я не ошибся. airbrake — одно из искомых слов.
Теперь подошли к двенадцатому слову. Bingo. И тут есть два пути получить ответ. Первый из них — прикинуться поисковым роботом Bing от Microsoft. Делаем то же самое, что и на десятом шаге в настройках Developer Tools, только уже выставляем User-Agent на Bing. Альтернатива — просмотреть сохраненную в кеше Bing копию страницы.

Отлично. Еще одно слово. И снова на пути неизветсность! А что, если заглянуть в кэш Google?

Осталось еще немного и только один вопрос без подсказок. Переходим к подсказке ld+json. Такой кусок скрипта можно заметить в head страницы.
<script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "Clue" } </script>
Пробуем Clue — нет эффекта. Тогда открываем валидатор на schema.org и…

Пробуем interlinked и у нас получается.
Пятнадцатый вопрос же вполне очевидный. Убирает «s» в адресе и получаем незащищенный протокол. В итоге снова во вкладке Network замечаем пару редиректов, один из которых будет искомым словом.

И последний рывок
Шестнадцатый снова отправляет нас к гуглу, как к поисковику. Ищем по сайту с помощью специального запроса в поисковике.

С семнадцатым вопросом я разобрался достаточно быстро, так как ссылка была на видном месте — прямо в head нашего файла.
<link rel="canonical" href="https://hiddenkeyword.com">

Осталось совсем немного! ? — что же это может значить? Карта… Sitemap…
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://hiddenkeywords.com/neutral</loc> </url> </urlset>
И вот еще одна ссылка.
Переходим к предпоследнему заданию. ?? — снова шарады! Свет… Дом… Попробуем сделать страницу домашней и… Ничего! Опять. Если за каждую идею мне надо было платить по рублю — кто-то стал бы уже миллионером. Надо думать дальше. Light… Home… House! Lighthouse! Есть такая вкладка в Developer Tools. Запускаем страницу на этой вкладке и получаем то, что искали.

Остался последний шаг. ? — палитра. Скажу сразу, но мне эта подсказка не помогла, я нашел гораздо раньше. Случайно заглянул в css файлик и все стало ясно.
*! syndicate */ /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100% } body { margin: 0 }
Самое первое слово! Бинго!

Послесловие
Не самое сложное испытание, тем не менее график меня заставил попотеть. Надеюсь, у вас получится пройти без этих подсказок, но если нет — всегда добро пожаловать. Если будет интересно, то буду продолжать.
Кстати, кто знает еще какие-либо задачки?
ссылка на оригинал статьи https://habr.com/ru/post/664754/
Добавить комментарий