Как обнаружить прокси/спам-посетителей?

В последнее время я столкнулся с огромным объемом трафика от прокси-посетителей и стран, которые не входят в целевую демографическую группу сайта (посетители из этих стран не могут пользоваться этой услугой).

Вместо того, чтобы просто блокировать посетителей, я хочу не отображать код Google Analytics и другой аналитический код для этих посетителей. Кажется, это золотая середина по сравнению с простым взломом всего, что приходит, но я не уверен в лучшем способе обнаружения прокси-посетителей. Какой предпочтительный метод для обнаружения прокси-посетителей и посетителей, попадающих в определенные географические границы IP-адресов?


person ylluminate    schedule 13.02.2014    source источник


Ответы (1)


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

function proxy_detected()
{
  if (
     $_SERVER['HTTP_X_FORWARDED_FOR']
  || $_SERVER['HTTP_X_FORWARDED']
  || $_SERVER['HTTP_FORWARDED_FOR']
  || $_SERVER['HTTP_CLIENT_IP']
  || $_SERVER['HTTP_VIA']
  || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
  || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
  {
      return true;
  } else {
      return false;
  }
}

echo ( proxy_detected() ) ? "Proxy detected" : "No proxy detected";
person dxer    schedule 13.02.2014
comment
Хороший звонок, но мне также любопытно, есть ли идеи по добавлению к этому VPN-прокси, которые, казалось бы, невозможно обнаружить таким образом? - person ylluminate; 14.02.2014
comment
@ylluminate Я не уверен, что можно обнаружить VPN, я действительно думаю, что это невозможно сделать, если вы не заблокируете провайдеров, хотя и не уверен. - person dxer; 14.02.2014
comment
Да, я боялся, что застряну, используя MaxMind или что-то подобное, чтобы обнаружить их. Я надеялся, что есть другой способ вместо дорогостоящего варианта. Спасибо. - person ylluminate; 14.02.2014