Получи случайную криптовалюту за регистрацию!

Маскировка под GoogleBot через подмену хоста И снова про Reve | Black Hat SEO

Маскировка под GoogleBot через подмену хоста

И снова про ReverseDNS и нерадивых разработчиков. Как мы знаем из этой статьи, при выполнении DNS-запроса по IP адресу GoogleBot отдает доменное имя .googlebot.com или .google.com, например crawl-66-249-66-1.googlebot.com, где crawl-66-249-66-1 - это имя хоста.

Очень многие разработчики не понимают специфики и важности правильной проверки, поэтому просто ищут вхождение подстроки в строку, например в PHP через функцию strpos(). Если злоумышленник заменит имя хоста, например на crawl-66-249-66-1.googlebot.com.randomdomain.com, то ваша проверка по DNS запросу выдаст положительный результат, так как вхождение в строку есть.

Поэтому очень важно проверять именно конец строки, а не просто вхождение. В PHP 8 наконец появилась функция str_ends_with(), которая реализует то, что нам нужно, но если у вас PHP более ранней версии, то можно использовать следующую функцию:

function endsWith($string, $endString) {
$len = strlen($endString);
if ($len == 0) {
return TRUE;
}
return (substr($string, -$len) === $endString);
}

За наводку спасибо @realefs

P.S. спасибо @glav_hack за публикацию, очень приятно.