ДАУЫС БЕРУДЕГІ ДАУЫС БЕРУДІ ҚАЛАЙ КӨТЕРУГЕ БОЛАДЫ - ТОЛЫҚ НҰСҚАУЛЫҚ
PROXY, IP, COOKIE
Дауыс беру кезінде дауыстарды өзіңіз қалай жинау керек деп ойладыңыз ба? Белгілі себептермен дауыс беру үнемі бақыланады IP- әрбір сұраныстың мекенжайы. Дегенмен, жаңа проксилерді алудың бірнеше жолы бар. Техникалық тұрғыдан жаңа сұрауды орындау үшін проксиді өзгерту бір жолда шешіледі Url:
curl_setopt($c, CURLOPT_PROXY, $proxy_адрес);
Бірақ кез келген алдау әрқашан алдын ала барлаудан басталуы керек. Дауыс беру басталғанға дейін снайферді іске қосуға болады. Бізді бірегей кіруші ретінде анықтаған кезде, сайт cookie файлдарында банальды сеанс орнатады, содан кейін сауалнамадағы фильмдердің санатына байланысты ресурс кәмелетке толған жасты растау үшін жасты көрсетуді ұсынады. Алдау тұрғысынан бұл өте қарапайым жұмыс істейді: сценарий әрбір сұрау үшін туған күнін тексереді, сондықтан алдау дауыстары IP-Туған күні бірдей мекенжайлар өте ақымақтық болар еді. Сондықтан, ең алдымен, біз туған күннің кездейсоқ буыны бар сессияны алуды қамтамасыз етуіміз керек. печенье. Мұны істеу үшін сценарийдің ең басында құрылған күні бар жаһандық айнымалы мәнді қою жеткілікті. печенье:
$cookie_session = массив(
'ТУҒАН КҮН='.ранд(1, 29).'-'.ранд(1, 12).'-'.ранд(1960, 1985),
'IS_18OLDER=1',
'LANG=en'
);Жасыңызды растағаннан кейін тіркелуіңіз керек. Ол үшін тіркеу бетіне өтіп, жеке деректерді енгізіңіз: аты, тегі, e—пошта белсендіру кодын, сондай-ақ мәтінді алу үшін captcha. Мұнда туған күнін көрсетуге ұқсас мәселе туындайды: әрбір жаңа сұраныспен біз жаңа есімдер мен фамилияларды жасауымыз керек, өйткені Иван Ивановтың мыңдаған дауысы әкімшіге ескертеді. Бұл айнымалы жеке деректерді Интернетте алу оңай, мысалы, сіз өзіңізді аттар мен фамилиялар сайтынан талдауға болады.
Белсендіру коды әлдеқайда көп қиындықтарды және әкеледі captcha. Сонымен, пішінді толтырғаннан кейін «тіркелу» түймесін басып, электрондық поштаны тексеріңіз, онда біз тіркеуді растау үшін бару үшін сілтемесі бар хатты күтіп отырмыз. Тіркелгіні іске қосқаннан кейін бірден жүйеге кіру керек, яғни логин мен пароль арқылы авторизация бетіне өту керек. Сонымен бірге, в печенье тіркелгіге кіруге жауапты екінші сеанс аласыз.
Әрі қарай, сіз дауыс жинағыңыз келетін бейненің бетіне өтіп, «дауыс беру» түймесін басуыңыз керек. Аякс, ол арқылы сұрау жіберіледі, орау процесін жылдамдатады. Шын мәнінде, бұл бәрі. Дегенмен, алдауды байқамау үшін сіз барлық бөлшектер мен ұсақ-түйектерді ескеруіңіз керек, өйткені бүкіл миллион рубль қауіп төніп тұр!
ЕРЕКШЕ ТАҚЫРЫПТАР
Кез келген алдамшы бірден көп ағынды қосқыңыз келетіндей етіп жасалған. Дегенмен, бұл мысал ережеден ерекшелік болып табылады, өйткені көп ағындылық бізге тек кедергі жасайды. Өйткені, дауыс беруді барлық дауыстар бір минутта келіп, күндіз мүлде болмайтындай етіп ұйымдастырсақ, бұл өте күдікті болып көрінеді. Сондықтан ең жақсы шешім үзіліспен балама дауыс беру болар еді. Дауыс беру кезінде дауыстарды үзіліспен қалай аяқтауға болады? Бұл туралы толығырақ…
Сондай-ақ, браузер (тақырып пайдаланушы—агент) жоғары сенімділік үшін кездейсоқ түрде жасалуы керек, өйткені «әр түрлі» пайдаланушылар, тіпті теориялық тұрғыдан да бір шолғышты пайдалана алмайды. Осы мақсатта мен көп нәрседен тұратын сценарий дайындадым пайдаланушы—агент. Оған шолғышты кездейсоқ алуға мүмкіндік беретін осы екі жолды қосу жеткілікті:
include('./useragents.lib.php');
$chosen_usagent = Браузерді таңдаңыз();Біз жалғастырамыз. Әдетте сайт сеансты бірден орнатады, содан кейін ол әрбір сұрауда арқылы беріледі печенье. Сондықтан бірінші қадам - қай браузерді маскарад ететінімізді анықтау, содан кейін сеансты алу және оны әрбір сұрауға енгізу. Жазбаларды өңдеу мүмкіндігі печенье ішінде жеу cUrl, бірақ мен бұл әдістің жанкүйері емеспін, сондықтан мен жай ғана сақтаймын печенье барлық функциялардан қол жеткізуге болатын жаһандық айнымалыда. Ол үшін алдын ала орнатылған сұрауды жасау жеткілікті пайдаланушы—агент сайттың негізгі бетіне өтіңіз, содан кейін алыңыз печеньесервер қайтарады және оларды кейін пайдалану үшін сақтаңыз.
БАРЛЫҚ БЕТ ЖҮКТЕЛУ
Бір қарағанда артық болып көрінетін сәтті назардан тыс қалдырмаңыз. Біз браузер жасайтын барлық сұраулардың орындалуы туралы айтып отырмыз. Деректермен ең аз сұраныстарды жіберу азғыруы керемет, бірақ үлкен қателік осында. Біріншіден, сайтта сурет бойынша хиттерді санау сияқты алдауды анықтау әдісі болуы мүмкін. Бұл жағдайда жүктеп алу саны, мысалы, бейнеклиптің суреті, шағын қатесі бар осы бейнені қарау санына тең болуы керек. Сондықтан бару саны әрқашан дауыс санынан асып түсуі керек. Дауыс беру кезінде дауыстарды бірегейлермен қалай жинауға болады? Бұл туралы төменде толығырақ айтатын боламыз ... Осылайша, сол жақ аккаунттардан алдау ғана емес, сонымен қатар боттарды эмуляциялау да жүзеге асырылады. Мен 1:3 қатынасын таңдадым, яғни әрбір үш көру үшін бір дауыс. Сонымен қатар, егер сіз көру санын арттыра отырып, тек бейнені қарау бетін жүктесеңіз, онда визуалды мазмұнның қалған бөлігін: JavaScript файлдарын, стиль кестелерін және сайт белгішесіне дейінгі басқаларды жүктеуіңіз керек. Басқа жол жоқ. Шынында да, жүз дауыс үшін мың көру керек, ал бейнеклип суреті мыңға жуық рет жиырма рет жүктеп алынса, бұл анық күдік тудырады.
Сіз толығымен жүктеп алуды келесі жолмен эмуляциялай аласыз. Mozilla Firefox шолғышында арнайы LiveHTTPHeaders плагинін пайдалану жеткілікті (басқа опция Opera браузеріндегі Opera Dragonfly), содан кейін онымен бетті ашыңыз. Нәтижесінде біз осы шолғыш жүктеп алған барлық файлдарға кірудің өте ұзақ журналын аламыз. Бұл журнал файлда сақталуы керек және оған екі функция жазылуы керек. Бірінші функция осы журнал файлын талдайды және жүктеп алынатын файлдың мекенжайы кілт болатын мәндер жиымын қайтарады, ал мән ағымдағы жүктеп алудың тақырыбы болады және алдын ала орнатылған cookie және браузер арқылы , өйткені әрбір дауыс берген сайын cookie файлы мен шолғышты өзгерту маңызды. Бұл журналдың көлемі өте шектеулі болғандықтан, сәйкес функцияны тауып, оны зерттеген дұрыс. Журналды файлға сақтағаннан кейін және жоғарыдағы функцияны келесі пішінде шақырғаннан кейін, біз бетті жүктеген кезде браузер жасаған барлық сұраулардың массивін аламыз.
$list = parseRequests(file_get_contents('./index_map.txt'),$chosen_useragent, $cookie);
Екінші функция барлық сұрауларды орындауға жауап береді - бұл curlMulti (). Бұл жағдайда көп ағынды пайдалану орынды, өйткені браузер көп ағынды файлдарды жүктей алады. Бұл функция одан әрі көп ағынды жүктеу және процесті жылдамдату үшін сілтемелер мен тақырыптар массивтерін қабылдайды. Файлдарды жүктеп алуды қосу/өшіру міндетті емес: тақырыптарды жүктеп алуды ғана қалдыра аласыз немесе жүктеусіз сұрауларды жібере аласыз. Бұл опция кейбір элементтерді жүктеуге мүмкіндік береді, бұл қалғандары қажет болмаған кезде өте ыңғайлы. Мен сізге құпияны айтайын, бұл тіркеу бетін жүктегенде, дәлірек айтқанда - captcha файлын жүктегенде пайдалы болады.
CAPTCHA ӨНДІРУ
Пайдаланушы әрекетін эмуляциялау үшін алдымен басты бетке өту керек. Мұны келесі кодпен жасауға болады:
loadIndex() функциясы
{
жаһандық $chosen_usagent, $cookie_session;
$list = parseRequests(file_get_contents('./index_map.txt'),
$chosen_usagent, 'Cookie: ' . implode('; ', $cookie_session));
$links = массив(); $heads = массив();
foreach ($list $link => $head){$links[] = $link; $heads[] = $head;}
$paged = cM($links, $heads, 1, 1);
}Жоғарыдағы функцияның пішіні бойынша файлды көруге болады индекс_карта.жазу қондырмасы арқылы бүкіл бетті жүктеген кезде жасалған журнал Firefox. Бұл жағдайда журналдың өзі қолмен өңделуі керек, өйткені жарнамалар жүктеледі Google немесе басқа беттерде жарияланған файлдар біздің жоспарларымызға кірмейді. Негізгі беттен тіркеу бетіне өткеннен кейін басқа журнал файлын пайдалану арқылы дайындау керек LiveHTTPHeaders және бір жолды ауыстыру арқылы түзетіңіз:
$беттелген = см($сілтемелер, $бастар, 1, 1);
үстінде
$paged = cM($links, $heads, 1, 1, 'captcha.php');
тізім($c_url, $sid) = жарылу('captcha_sid=', $links[11]);
қайтару массиві('sid' => $sid, 'image' => base64_encode($paged[11]));Бұл жағдайда барлық элементтерді жүктеу эмуляциясы сәтті болады және сурет captcha тіпті қайтып келеді.
$сілтемелер[11] және $беттелген[11] - сәйкесінше sniffer журналындағы файлдардың реті бойынша есептелген он екінші жүктеп алу элементі үшін сілтеме және сұрау мәні. Сонымен бірге ол сілтемеден шығарылады сид, оған мәтіннің мәні беріледі captchaмұны шешу керек. Танымал қызмет мұны жақсы шешеді. қарсы.com, ол мың суретке бір долларға мәселенің шешімін ұсынады.
Бұл жағдайда мен аздап өзгерттім API-онда сақталған файлға жолды көрсететін тану функциясы captcha және кіру кілті:
$captcha = loadReg();
$local = md5($captcha['сурет']);
$write_c = fopen('./captchas/'.$local.'.jpg', 'wb');
fputs($write_c, base64_decode($captcha['сурет']));
fclose($write_c);
$cresult = тану('./captchas/'.$local.'.jpg', 'e12dc4858bac1f4ee338c577f9d300');Сонымен, біз жауап алдық captcha $ айнымалысынданәтиже.
ПОШТА МӘСЕЛЕЛЕРІ
Бізге тап болатын келесі маңызды мәселе - тіркелгіні белсендіру үшін поштаны тіркеу қажеттілігі. Сонымен, пошталық растау арқылы дауыс беру кезінде дауыстарды қалай жинауға болады? Барлығы төменде! Алаңдамаңыз!
Әр жолы басқа мекенжай болуы керек екені анық. Бұл мәселені шешудің үш жолы бар:
- Есептік жазбаларды Rambler немесе Yandex сияқты тегін пошта қызметтерінде тіркеуге болады. Бірақ егер сізге тым көп электрондық пошта қажет болса, автотіркеуді пайдалану немесе әлдеқашан тіркелген тіркелгілерді біреуден сатып алу оңайырақ.
- Атауы бойынша белгілі пошта қызметтеріне ұқсас доменді сатып алыңыз, содан кейін барлық мекенжайларға жіберілген хаттарды жинау үшін сценарийді орнатыңыз. Осылайша, мекенжайларға бағытталған abcgde@domain.ru және eprst@domen.ru пошта бір жәшікке түседі және мұндай мекенжайлар мыңдаған болуы мүмкін.
- Мен дайындаған сценарийді қолданыңыз. Бұл әдіс уақыт пен ақшаны қажет етпейді, бірақ мәселені шешу үшін өте тиімді. Сценарий жүйеде бұрыннан тіркелген және тегін қызметті пайдаланатын кез келген мекенжайды тексеруге жарамды пошташы.тор. Бұл қызметтің домендерінде ерікті мекенжайды көрсету жеткілікті, содан кейін веб-интерфейс арқылы сәйкес тіркелгіге кіріп, поштаңызды тексеріңіз. Сонымен қатар, бұл авторизациясыз жасалуы мүмкін және сценарийдің өзі он бір доменге қол жеткізуді білдіреді.
Таңдалған әдіс жағдайға байланысты. Белгілі бір жағдайда, біз бірінші нұсқаға ақша жұмсауға мәжбүр боламыз, өйткені уақыттың маңыздылығы белгілі бір жеңілдіктерді талап етеді. Сонымен қатар, біз автотіркеуді өз бетімізше жазбаймыз, оны кез келген хакерлер форумынан табамыз. Мұны шот сатушысы арқылы жасауға болады, одан сіз тексеруге жарамды пошта мекенжайларын сатып ала аласыз. PHP IMAP ұзарту.
Пошта қызметтерінің серверлеріне қол жеткізу әртүрлі жолдармен жүзеге асырылатындықтан, қайсысы бізге сәйкес келетінін алдын ала біліп, содан кейін ғана тіркелгілерді сатып алу керек. Жеке маған Rambler-тегі тіркелгі ұнайды: өз тәжірибемде мен ондағы поштаны тексеруде ешқашан қиындықтарға тап болған емеспін.
Енді соңғы әріптің денесін алу үшін келесі функцияны жазуымыз керек:
getMessage функциясы($login, $password)
{
$imap = imap_open('{mail.rambler.ru:110/pop3/notls}КІРІС ЖАБДЫҒЫ',
$login, $password);
егер ($imap){$body = imap_qprint(imap_body($imap,
(imap_num_msg($imap) - 1)));}
басқа{қайтару жалған;}
қайтару $body;
}Жазбаша функция пошта жәшігіне келетін соңғы әріптің мәтінін қайтарады, сондықтан оған барлық қажетті деректерді дайындап алайық: пошталық мекенжай, жеке деректер және сәйкес айнымалылар үшін құпия сөз. Мен жоғарыда мекенжайларды алу жолы туралы, сондай-ақ жеке деректер туралы айттым. Құпия сөзді келесі жолмен жасауға болады:
$password = substr(md5(уақыт()), 0, rand(6, 10)).rand(10,99);
САЙТТА ТІРКЕЛУ
Дайындықтан кейін тіркеу функциясының өзін жазуға көшуге болады. Дауыс беруде сауалнама толтыру арқылы дауыстарды қалай жинауға болады деген сұрақ бірден туындайды. Барлығы көрінгеннен оңай! Мұны істеу үшін сізге плагинді пайдалану керек liveHTTPHeaders. Сонымен бізде бар POST-формадағы деректер көп бөлімді/пішін—деректер. Енді мəндеріңізді снайферден журналға ауыстырыңыз, содан кейін оларды жіберіңіз POST-сұраныс - CURLOPT_POST, CURLOPT_POSTFIELDS. Сонымен қатар, тақырыптың өзгеретін мағынасы туралы ұмытпаңыз мазмұны—түрі арқылы сұралғанда көп бөлімді/пішін—деректер тудыру қажет шекаралар.
Барлық жіберілген пакеттерді одан әрі дерекқорда пайдалану үшін сақтаған жөн MySQL. Сайтқа тіркелу кезінде пошта деректерін, тіркелгіден парольді сақтау қажет, пайдаланушы—агент, печенье. Бірақ алдымен уақытты жоғалтпау үшін басқа тіркелгілерді бір уақытта тіркей отырып, тіркелгіңізді белсендіру үшін поштаға келетін хатты күту керек. Бүкіл жұмыс процесін екі кезеңге бөлу керек екен - сәйкесінше шоттарды тіркеу және оларды жылжыту. Біраз уақыттан кейін сақталған деректерді ашқаннан кейін, бізге олардағы поштадан логин мен парольді табу керек, содан кейін қорапта сәйкес әріп бар-жоғын тексеру керек:
$activation = getMessage($email_login, $email_passw);
Егер хат болса, біз қарапайым қалыпты функцияны пайдаланып белсендіру сілтемесін таңдаймыз. Бұл мәселеде ерекше проблемалар болмауы керек, өйткені сұрауды қалыптастыру тіркеуді растауға кетеді және бұл үшін енгізу қажет. сілтеме беруші, қосу печенье және пайдаланушы—агентбұрын таңдалған. Барлық элементтерді жүктеуді ұмытпаңыз: ол үшін біз барлық сұраулармен журнал файлын жасаймыз, оны талдаймыз және шолғыштың әрекеттерін қайталаймыз.
Барлық қажетті деректерді алғаннан кейін және тіркеуді растағаннан кейін бізге тек жүйеге кіру керек. Мұны істеу үшін қайтадан сұрау жасаңыз, браузерді эмуляциялаңыз және алынғанды сақтаңыз печенье жаһандық айнымалыда. Сол сияқты, біз дауыстары алданып қалуы керек бейненің бетіне өтіп, қай жерде екенін көреміз. Аякс арқылы осы сұрауды жіберу үшін дауыс беру түймешігін басқаннан кейін сұрау жібереді cURL. Сұраныстардың арасындағы уақыт 3-5 секунд.
Орамды автоматтандыру процесі келесідей. Біреу циклдарды пайдаланады ұйықтау() және басқа да көп уақытты қажет ететін нәрселер, бірақ мен оны жеңілдетіп, сценарий өткеннен кейін (әр сценарийді орындауға бір дауыс негізінде) код автоматты түрде браузерге жіберілетіндей етіп жасадым. JavaScript, ол бір немесе екі минуттан кейін бетті жаңартады. көмегімен автоматтандыруға болады cron кез келген ақылы хостингте.
ДАУЫС БЕРУДЕГІ ДАУЫС БЕРУДІ ҚАЛАЙ ҚОЛДЫРУҒА БОЛАДЫ
Бір-екі мың дауысты алдап, менің тапсырыс берушім бәрібір бас жүлдені жеңіп алды, мені еңбегім үшін сыйсыз қалдырды. Сонымен қатар, бұл оқиғаның маңызды бөлігі болған инсайдерлер де жігерлендірілмеген. Дауыс берудің ішкі жағынан бәсекелестікпен өтетіндігі туралы ақпаратты солардан алдық. Мысалы, бізден басқа да алдаушылардың бар екенін білдік. Бір қызығы, олар конкурстан арнайы шығарылмаған және олардың дауыстары нөлге қайтарылмаған - бұл тек соңында жасалды. Атқарылған жұмыста таңғалмайтын біз үшін ешқандай күдік туындаған жоқ.
Сондықтан алдауға әкімші көзімен қарау екі есе пайдалы. Біз алдын ала зерттей алатын барлық нәрселерге жол бермедік: уақыт, тақырыптар, браузерлер, печенье, пошталық мекенжайлары, IP-мекенжайлар және тіпті жылдамдық. Әрине, барлық ұсақ-түйектерді ескеру процесті баяулатады, бірақ егер мерзімдер аяқталмай қалса, мәре сызығында ештеңе қалдырғаннан гөрі, барлық бөлшектермен жұмыс істеуге қосымша уақыт жұмсаудың мағынасы бар.
Менің кеңесім: дауыс беру кезінде дауыстарды қалай арттыруға болатынын әрқашан сұраңыз және алдаудың қаншалықты тиімді және сенімді болатынын толық түсіну үшін осы мақалаға қоса берілген барлық сценарийлерді мұқият зерттеңіз.
ҚАЙДА ӨТІНЕ АЛАСЫЗ Cheat
1. Серіктестік бағдарламалар. Серіктестік бағдарламаларды трафик бойынша жылжыту үлкен сұранысқа ие, бірақ бәрі көрінгендей қарапайым емес. Бастау үшін сізге бетте ендірілген барлық JavaScript файлдарын мұқият талдау қажет болады. Сондай-ақ, жіберілген деректердің кейбірі браузер параметрлеріне байланысты болуы мүмкін, оларды қолдан жасау оңай емес. Егер сіз трафикке дауыс беру кезінде дауыстарды қалай жинау керектігін іздесеңіз, сіз дұрыс емес жерге келдіңіз.
2. Әлеуметтік желілер. Facebook, Youtube, Vkontakte және басқа да әлеуметтік желілер әртүрлі нысандардың танымалдылығын арттыру үшін сауалнамалар мен лайктарды жиі пайдаланады. Сізге JavaScript-пен жұмыс істеуге және олардың браузерлерге қосылуын талдауға және сонымен бірге авторизация, captcha және боттардан қорғаудың басқа әдістерімен айналысуға тура келеді. Біздің сайтта сіз әлеуметтік желілер арқылы авторизацияны пайдалана отырып, дауыс беру кезінде дауыстарды қалай жинауға болатыны туралы ақпаратты таба аласыз.
3. Жүлделермен дауыс беру. Бас жүлдені алу үшін дауыс берудегі дауыстарды қалай жинауға болады? Тек осы опцияны біз осы мақалада қарастырдық. Көптеген сайттар мұндай дауыс беруді жүргізеді, бірақ ең қарапайым жағдайдың өзі әрбір дауыстың бірегейлігін бағалау үшін пайдалануға болатын барлық қажетті параметрлерді анықтау үшін алдын ала бақылауды қажет етеді.
Сіз «Дауыс беру кезінде дауыстарды қалай жинауға болады» деп іздедіңіз. Сізді келесі материал қызықтыруы мүмкін: өтініштерді тоқтату немесе инстаграмдағы лайктарды көбейтіңіз