2010-09-28 9 views
0

У нас есть регистрационная форма, где люди могут зарегистрироваться для проведения опросов для небольшой компенсации. Недавно мы обнаружили много подозрительных записей. Я выследил сайт на китайском языке, который я перевел с помощью Google, и в основном это было «как», чтобы подписаться на эти сайты. Я работаю над тем, чтобы отслеживать способ автоматического отфильтровывания фиктивных из них.Блокировка записей с подменой формы

Регистрация имеет «капчу», чтобы надеяться, блокировать не-людей, но вводимые данные чрезвычайно реалистичны во многих случаях. Опрос проводится для барменов, и все поля заполняются с использованием законных адресов и адресов. Номера телефонов могут быть выключены, но они могут использовать ячейку и перемещаться в область. Я пытался на экран, захватив данные и страновые данные IP с помощью следующей функции:

// this function is necessary since allow_url_fopen is disabled by default in php.ini in PHP >5. 
function my_file_get_contents($file_path) { 
    $ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $file_path); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 1); 
    $buffer = curl_exec($ch); 
    curl_close($ch); 
    return $buffer; 
} 

function getInfoFromIP(){ 

// get correct IP in case of a proxy 
if (!empty($_SERVER['HTTP_CLIENT_IP'])){     // shared ip 
    $real_ip=$_SERVER['HTTP_CLIENT_IP']; 
} 
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){  // ip is from proxy 
    $real_ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
} 
else{ 
    $real_ip=$_SERVER['REMOTE_ADDR']; 
} 

//verify the IP address for the 
ip2long($real_ip)== -1 || ip2long($real_ip) === false ? trigger_error("Invalid IP Passed: ", E_USER_ERROR) : ""; 

$ipDetailArray=array(); //initialize a blank array 
$ipDetailArray['ip'] = $real_ip; //assign ip number to the array 

//get the XML result from hostip.info using custom lookup function 
$xml = my_file_get_contents("http://api.hostip.info/?ip=".$real_ip); 

//regex to get the country name from <countryName>INFO</countryName> 
preg_match("@<countryName>(.*?)</countryName>@si",$xml,$countryInfoArray); 
$ipDetailArray['country'] = $countryInfoArray[1]; //assign country name to the array 

//get the country name inside the node <countryName> and </countryName> 
preg_match("@<countryAbbrev>(.*?)</countryAbbrev>@si",$xml,$ccInfoArray); 
$ipDetailArray['country_code'] = $ccInfoArray[1];  //assign country code to array 

//return the array containing ip, country and country code 
return $ipDetailArray; 
} 

Затем я вручную проверки и удаления из них, которые появляются за пределами США (что, где бар и наблюдатели должны быть расположены для участия). Я ВСЕГДА нахожу много подозрительных, которые перечислены с использованием IP-адресов в США (которые, я уверен, подделаны).

Не уверен, что мой код неполный или если есть лучшее решение, которое я не смог найти. Благодаря

+1

Вы можете позволить The Great Firewall выполнить эту работу за вас, добавив ключевые слова на своей странице о «Фалуньгун», «Тянь Анмен» и т. Д. (Написанные упрощенными китайскими персонажами). ОК, это не смешно ... но, возможно, это работает – FelipeAls

+0

Что-то вроде http://www.parkansky.com/china.htm и http://www.wizcrafts.net/chinese-blocklist.html может стоить того читать. – liftarn

ответ

0

Дон, мы делаем что-то подобное, а, вот некоторые из вещей, которые мы должны были прибегнуть к:

  1. Изолировать страницу в качестве своего собственного виртуального сервера. Используйте Apache для блокировки повторных нарушителей.
  2. Хорошее использование Capcha, но если они проходят мимо него, у вас есть проблема. Рассмотрите , улучшая capcha, используя вещи, которые ни один робот не мог бы обойти, например, запутанную графику или вопросы с людьми. Если это будет продолжаться, тогда у вас есть определенные люди на руках.
  3. Периодически изменяйте название. Он может блокировать людей, которые следовали «как» ссылку
  4. Вставьте Google Analytics и просмотрите трафик. Это может помочь вам определить модели и время суток, когда проблемы очевидны. Иногда это может привести к еще более интересным работам.
  5. Scrutinize logs. Проверьте IP-адреса с помощью онлайн-инструмента. Отчет нарушители для интернет-провайдеров.

Возможно, проверьте, поддерживают ли они геолокацию браузера, и имейте это в виду. (http://www.browsergeolocation.com/) Блокировка по местоположению является жесткой, хотя, потому что у многих хакеров есть другие компьютеры-зомби, и информация, такая как коды областей, настолько портативна в наши дни.

+0

Я уже использую скрипт recaptcha, чтобы проверить, что это человек. Я думаю, что это настоящие запросы, просто они не являются реальным рынком для тех, кого мы приглашаем принять платный опрос. Я также использую скрипт для поиска местоположения Geo IP, но многие говорят, что США, когда я на 99% уверен, что они не основаны на тщательном изучении введенного. Я недостаточно разбираюсь в том, как они обманывают IP, хотя знаю, есть ли там что-то, что я мог бы поймать. Тем не менее, я ценю insite. Может быть, мне нужен лучший сценарий геолокации ??? Кроме того, изменение местоположения страницы не является параметром b/c, мы продаем URL через открытки – Don