Facebook все еще получает мой реальный IP, даже с переполнением стека TOR + cURL +

Я делаю вход в Facebook, используя cURL, и я использую прокси-сервер TOR для этого входа. Вот мой код:

function loginOnFacebook($login_email, $login_pass)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://m.facebook.com/login.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Proxy configuration, very important!
if(isset($params['t']))
{
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
}

curl_setopt($ch, CURLOPT_POSTFIELDS,'charset_test=€,´,€,´,水,Д,Є&email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: utf-8','Accept-Language: en-us,en;q=0.7,bn-bd;q=0.3','Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'));
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd ());
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd ());
curl_setopt($ch, CURLOPT_USERAGENT, "user_agent");
curl_setopt($ch, CURLOPT_REFERER, "http://m.facebook.com");

$fbMain = curl_exec($ch) or die(curl_error($ch));

$url = 'https://m.facebook.com/home.php?refid=18';

curl_setopt($ch, CURLOPT_URL, $url);

$demo_mac=curl_exec($ch);
$effectiveUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

if($effectiveUrl == $url)
return true;
else
return false;
}

Вы можете видеть, что я проверяю $param -t использовать прокси-сервер TOR через порт 9050.

Это работает, я проверяю так:

for($i = 0; $i <= 50; $i++)
{
$ch = curl_init('http://icanhazip.com/');

curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

if(isset($params['t']))
{
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
}

$myIp = curl_exec($ch) or die(curl_error($ch));
print($myIp);
}

Этот код проверит мой публичный IP на http://icanhazip.com/ и распечатай его мне, и он работает, я получаю TOR IP.

Но, когда я пытаюсь войти на Facebook с помощью этой системы, я все еще получаю свой реальный IP-адрес.

образ

Может ли кто-нибудь помочь мне определить, что происходит?

1

Решение

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

Из истории в будущее: у нас есть несколько новых битов в протоколе SSL, которые специально не созданы для управления сессиями, но могут предложить такую ​​возможность в качестве побочного эффекта. Ни один из тех, что я видел, не реализован, но я считаю, что сшивание OCSP и ALPN являются хорошими кандидатами.

  • Первый и менее вероятный мне кажется OCSP, который «кэширует» ssl-сертификат, чтобы сервер знал, что ваш клиент был там. Если Facebook контролирует центр сертификации, он может просто сохранить ваш адрес и использовать его всякий раз, когда вы используете ваш кешированный сертификат. Ssa;)

  • Во-вторых, есть ALPN, который позволяет использовать http2 и переключаться на другой протокол, например UDP, и это не будет работать с вашим локальным TOR (https://www.whonix.org/wiki/Tunnel_UDP_over_Tor). Может быть возможно установить второе соединение через UDP, чтобы полностью обойти ваш прокси. Поэтому я бы попытался отключить ALPN сейчас с curl_setopt($ch, CURLOPT_SSL_ENABLE_ALPN, 1);— Срю гугл;)

Я могу только надеяться, что это поможет вам, потому что я не пробовал. В любом случае вы должны прочитать, понять и вручную установить каждую опцию setopt и никогда не доверять значениям по умолчанию, чтобы быть на максимально возможной стороне. Это связано с тем, что зависимости curl, такие как libssl, всегда могут использовать файлы конфигурации и кэши самостоятельно. Так что даже проверки всех параметров скручивания, но и тех, которые они используют, будет недостаточно. С другой стороны, параметры curl являются наилучшей отправной точкой, потому что они позволяют отключить ненужные функции curl, что я бы поэтому сделал как можно лучше.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]