Aukro v nové soutěži odměnuje šikovné programátory | Michal Smrčka - blog

Aukro v nové soutěži odměnuje šikovné programátory

V těchto dnech probíhá na Aukro.cz soutěž „Aukro naděluje“. Každý den organizátoři umístí do nějaké náhodné sekce na Aukru relativně hodnotné produkty za směšně nízkou cenu. Je k dispozici vždy pouze 1 kus. Vy musíte tento produkt najít a zakoupit jako první.

O soutěži jsem se dozvěděl na Twitteru a nebýt následujícího odvážného prohlášení Aukra, ani bych se jí příliš nezaobíral:

foto

foto

„Nebojte, na roboty a podvodné programy jsme mysleli, takže tudy cesta nevede.“

Kdy jsem naposledy viděl tak obrovskou výzvu?! :)

Dal jsem se tedy do programování jednoduchého pomocníka:

  • Na vstupu dostane ID poslední vyhrané aukce
  • Průběžně zvyšuje ID a hledá, jestli v kódu daných aukcí je alespoň 3x slovo „aukroplus“
  • Pokud ano, stáhne si obrázek a odkaz do databáze mezi "nadějné"
  • Pokud ne, jen si uloží informaci, že tato aukce nás nezajímá

Podobně jste mohli aukci hledat ručně (měnit v URL adrese číslo aukce). Jen by vám to trvalo tak 10000x déle.

Tento skript jsem spustil na několika oddělených serverech a poté si ještě napsal „klienta“, který mi nalezená data shrne a vypíše jen „pravděpodobně výherní“ aukce.

Výsledek:

  • Robot mi obě aukce přehledně nabonzoval cca 5-15 sekund po tom, co byly vystaveny
  • Přímo na produktovou stránku jsem se v obou případech dostal dříve, než za 30 sekund od vystavení aukce
  • Obě aukce již byly ukončené

Co říct závěrem?

  • V podobných soutěžích nemá běžný uživatel téměř žádnou šanci.
  • Je to soutěž programátorů, kterým to jen trošku ztěžují desetitisíce uživatelů bloudících po webu (je možné, že se někdo na aukci náhodně dostane rychleji)
  • Aukro programátorům třetí den soutěže hodně pomohlo. Dříve uživatelům napovídali, ve které sekci aukci mají hledat, poté ale nápovědu ukončili a tím uživatele rozptýlili po celém webu. Byla tedy menší pravděpodobnost, že aukci najdou dříve, než programátoři.
  • Gratuluji tomu, co napsal rychlejší skript, příp. měl k dispozici rychlejší servery a čas na optimalizaci :))

Dodatek pro programátory: vím, že to by to asi šlo řešit lépe, např. přes seznam nových uživatelů, nebo filtrovat ještě dle jiných kritérií, které mají vítězné aukce společné. Ale zas tak moc jsem systém a chování organizátorů nezkoumal ;))


Čtěte také:
18. 11. 2011 v 16:04 • Bezpečnost a hacking • autor Michal Smrčka
 

Názory a komentáře k článku


[1] Radek 18. 11. 2011, 16:33
Zdravim. Dle me zkusenosti vami popisovana metoda nevede k cili. Myslim si, ze reseni nebude az tak primocare.

[2] Michal Smrčka admin 18. 11. 2011, 16:38
Vy si to myslíte, já jsem to vyzkoušel a celkem podrobně popsal.

[3] Radek 18. 11. 2011, 16:42
Cilem byla myslena vyhra. Vy jste vyhral? Jestli ano, pak neni o cem mluvit.

[4] George 18. 11. 2011, 17:21
Michal: No, kdybys ten program trochu potunil, tak bys to mohl klidně prodávat. ;)

[5] Nekdo 18. 11. 2011, 18:25
Prodavat :D? Ja vyhral diky trochu jinemu zpusobu, ktery opravdu popisovat nebudu :D Ale oni se s tim vazne nijak nezabyvali. Kazdopadne je tam nejmene 5 voditek, kterymi se lze dostat k vyhre pod par sekund =) A sikovny clovek to napise tak, ze ani sebe lepsi webmaster s tim nic nenadela..

[6] BeNiSh e-mail 18. 11. 2011, 19:41
s mym pomocnickem sem se dostal k aukci do 10ti vterin a taky uz sem vzdy koukal na skoncenou aukci. a pres uzivatele na to nejdu ani pres bezny aukce, prijde mi to prilis zlouhavy reseni ;-) v podstate me uz ani nezajimaj ceny jako zpusob reseni :D chtelo by to nekde o tom programatorsky pokecat

[7] Petr Hejl 18. 11. 2011, 19:46
Musíte na to jít přes "jiné objekty". :D

[8] Hmmm 18. 11. 2011, 23:34
Naco preboha stahujes obrazky? Uz len preto to nemoze byt rychle

[9] Jenda e-mail 19. 11. 2011, 00:08
Nehledej to podle aukcí, ale podle posledně registrovaných uživatelů + jestli mají „aukroplus“ + jestli mají něco vystaveno a je to tvoje

[10] Miloš e-mail 19. 11. 2011, 02:14
Ahoj, prosím vás nemohl by mi někdo poslat návod na emal: milos.kupec@centrum.cz podrobný návod jak bych mohl některou z aukcí najít? Děkuji :)

[11] Sašetka e-mail 19. 11. 2011, 11:26
Hele tak někdo ten skipt pošlete...nebo program ve kterém se dá utvořit...nemám celý víkend co dělat, tak se budu bavit :oDDDDDDD

[12] Sašetka e-mail 19. 11. 2011, 11:35
Hele tak někdo ten skipt pošlete...nebo program ve kterém se dá utvořit...nemám celý víkend co dělat, tak se budu bavit :oDDDDDDD

[13] Petr Hacker e-mail 19. 11. 2011, 11:53
Já ten skript mám, a možná bych ho i pustil, ale zadarmo to samozřejmě nebude (musíte uvážit, kolik na tom lze vydělat, když bych ty výhry prodával). Rozhodně to není žádný debilní prohledávání aukcí a skript je vylazený na milisekundy, žádné sekundy, jak píše autor článku! Nechci ho prodávát hromadně - to by němelo smysl, takže ho dám největší nabídce. Nabídky posílejte na petr.zubel@seznam.cz (pro rýpaly jen orientační náklady na výrobu - dělal jsem to asi 16 hodin a v práci mám hodinovku 500 Kč).

[14] Tipař www19. 11. 2011, 11:58
Tyhle soutěže jsou vždycky dostihy programátorů. Zkoušel jsem napsat bota, který tyhle aukce vyhledá a v páteční soutěži mi ten robot vyhodil všechny aukce do minuty od zveřejnění. Kdybych dodělal multithreading a skript nasadil na server místo domácího PC, tak věřím, že ty aukce mám do 5 sekund. Ale i to je pomalé.

Ale stejně mám pocit, že to vyhrává bot, který umí i nakoupit a zaplatit, což můj neumí :D

[15] Petr Hacker e-mail 19. 11. 2011, 12:19
To Tipař - ano, 5 sekund je opravdu hodně... Většinou je to 3-4 sekundy po prodání :)
A ano, můj skript umí předmět i zakoupit. Zaplacení není nutné - to už člověk může udělat v pohodě ručně...

[16] hogofogo e-mail www19. 11. 2011, 12:31
Vazeni, vsimnete si kolik tech botu uz bezi. U kazde nove aukce je behem prvnich nekolika sekund od 3 do 15 zhlednuti a je jedno o jaky kram se jedna. A to je jeste vikend a nebezi soutez. Aukro si s tim fakt hlavu nelamalo a predmety lze lehce najit. Ptoto kazdemu normalnimu doporucuju radsi vydelavat jinak a to po cem touzite si radsi kupte za vydelane penize, usetrite si cas a zklamani.@Petr Hacker - kdyz si sedel nad necim takovym 16 hodin tak se nedivim ze to musis prodavat, bez se radsi ucit ;)

[17] Petr Hacker e-mail 19. 11. 2011, 12:50
Ano, 16 hodin. Cca 2 hodiny hledání vhodného algoritmu, jako to hledat (abych jako autor článku neprocházel aukci za aukcí), cca 3 hodiny psaní a testování kódu a zbytek prosté časové ladění - každá milisekunda se prostě počítá. A o úspěchu myslím svědčí páteční úspěch :)
A právě jsem obdržel první nabídku (no popravdě čekám trochu více), takže kdo má zájem, pište nabídky nebo se ptejte, vše krom algoritmu zodpovím...

[18] Petr Hacker e-mail 19. 11. 2011, 13:09
To Sašetka: Snad nemyslíš, že ti to někdo pošle nebo zveřejní zdarma? Ono to dá docela i práci, víš? :) A pokud neprodám, tak se mi to zaplatí z vyhraných aukcí... :D

[19] George 19. 11. 2011, 13:27
No předpokládám, že i když ho prodáš, tak ho budeš taky nadále používat. Kdybys ho neprodal, tak bys stejně nemohl vyhrát větší množství aukcí sám, to by bylo trochu podezřelé.

[20] George 19. 11. 2011, 13:37
A nechceš ten script vydražit na aukru? To by bylo docela pikantní a měl bys víc zájemců. :D

[21] vesela gumka e-mail 19. 11. 2011, 14:00
viz: A o úspěchu myslím svědčí páteční úspěch :)
Super to gratulejsn! a kolik si tedy vyčenichal a skutečně vyhrál v pátek kousků? konkrétně který z 1-5?

[22] Petr Hacker e-mail 19. 11. 2011, 14:38
Ne, když ho prodám, tak už ho používat nebudu (i když se to těžko věří, viď?). Ze stejného důvodu ho nechci prodat vícekrát - to by nemělo význam - ze stejného důvodu nechci dražit na aukru. Víš co, v podstatě jsem to začal psát jako výzvu - protože aukro psalo, že to maj zabezpečený, tak mě spíše zaujalo jak (abych se případně mohl inspirovat ve svých aplikacích). Bohužel to byly jen plané řeči a tak jediný problém byl v tom, aby ten skript byl rychlejší než ty od ostatních programátorů (takže opět taková malá výzva). První pytel mi v pátek utekl, protože tam byla ještě chybička, kterou jsem opravil. Další už mi to chytlo všechny (ještě neprodané), ale koupil jsem samozřejmě jen jeden z toho důvodu, abych to otestoval (samotný pytel mi bude k ničemu - mám pohodlnou židli a nepotřebuju žádný pytel se zrním). Takže jak říkám, byla to jen výzva (kdyby aukro nepropagovalo, jak to maj zabezpečené, asi bych tím neztrácel čas - na to je můj čas příliš drahý). A teď (když už je to vyzkoušené a otestované) to buď pošlu dál a nebo to budu používat do doby, než se mi zaplatí aspoň ten ztracený čas (původně jsem tomu chtěl věnovat tak 2 hoďky, ale prostě se to zdokonalovalo a zdokonalovalo a zdokonalovalo a nějak jsem u toho zkysnul). Neprogramátor to asi nepochopí, ale programátor není povolání, je to prostě poslání, pro které žiju a navíc jsem hrozně egoistický, takže to byla opravdu výzva.

Takže skript stále nabízím k prodeji nejvyšší nabídce (na email: petr.zubel@seznam.cz), ale raději předem upozorňuji, že přesto, že jsem skript optimalizoval na nejmenší možné milisekundy, tak si nedělám naději, že jsem nejlepší programátor na světě, takže se může v pondělí klidně objevit něco ještě výkonnějšího. Ono taky záleží na tom, kde to běží, jaké je připojení atd., takže i rozdíl optiky 50/50 a 100/100 může pár milisekund přidat a už to nemusí zaručit výhru. Skript běží na nevytíženém osmijádrovém serveru s 8GB RAM a připojený jsem optikou 50/50 (to jen tak pro představu) - ale v pátek mi to chytlo 4 z 5...

[23] BeNiSh e-mail 19. 11. 2011, 20:42
postup ste zverejnit meli az po soutezi. ted si neco podobnyho doprogramuje kazdej nymand =) ke vsemu verim, ze uz nekdo z aukra si to procet a dalsi vitezny aukce uz tak dohledatelny nebudou. staci, ze pouzijou nejakej starsi ucet, popr. novej s rucne dodanym ID. taky muzou aukce vystavit uz davno predem treba jako skryty v archivu a v inkriminovanou dobu je vystavit/zmenit. v takovejch pripadech se skenovani nejnovejsich aukci ci useru A+ mine ucinkem. kdyby se tyhle zpravy nezverejnovali, jiste by jim jejich nabubrelost nedovolila ani pochybovat :o) nejspolehlivejsi zpusob je podle myho projizdeni vsech aukci, ale to je casove narocny - muj pomocnik dokaze zkontrolovat 500 aukci do 5ti minut s 99% uspesnosti. ovsem to je v porovnani s konkurenci stejne k nicemu jako soutezit manualne

@Petr Hacker: "nezverejnil" bys kod treba az po soutezi? treba emailem atd. PHP sem videl naposled na stredni (dost davno) a tak bych chtel vedet, jaky sou finty a moznosti dnesnich koderu, ale vzhledem k tvym financnim nakladum, te nemuze zaujmout zadnejch par penez a ja do toho nechci vkladat zadnou 4mistnou raketu, obzvlast kdyz to nemam pro financni zisk :o)

[24] Michal Smrčka admin 19. 11. 2011, 22:36
Vite, clanek jsem puvodne psal proto, ze mi bylo lito techto lidi:

Ale jestli tu ma probehnout diskuze o tom, jak algoritmus optimalizovat, tak se tomu nebranim :)

[25] mikiliki e-mail 19. 11. 2011, 23:40
BeNiSh - když je to k ničemu tak by jsi se o něj mohl podělit? :-) Klidně na mikiliki@seznam.cz

[26] Grovik e-mail www20. 11. 2011, 03:08
Jak tak čtu diskusi. Povídání o vylaďování na milisekundy, je docela blbost.
Už jen proto, že skript je svou rychlostí závislí jak na konektivitě, tak momentální zátěži Aukra.
Navíc osobně nechápu co chce "autor" vylaďovat. Skript prostě běží jak běží.
Ladit se dá ještě tak něco v assembleru. Ale PHPko nebo třeba Python o moc rychlejší nebudou.
Prostě jen snaha zaujmout.

Mimochodem taky mám jeden skript. Dovede jak prohledat Aukro, dovede spolehlivě najít aukci.
každopádně rychlost čehokoliv takového je odvislá od připojení, počtu průchodů atd.

[27] Grovik e-mail 20. 11. 2011, 04:20
Tak jak tu vidím ty prosby o skript...

Nejpozději po skončení soutěže, ale dost možná že i dřív ho zveřejním na svém Google+ profilu:
https://plus.google.com/u/0/113911632314547030042/posts

[28] BeNiSh e-mail 20. 11. 2011, 10:11
navrhuju po soutezi zorganizovat nekde v Pha hospodskej AUkroCON a tam bysme si vsichni porovnali svoje boty a zkusenosti =)

[29] Michal Smrčka admin 20. 11. 2011, 10:45
BeNiSH Muzeme pozvat i programatory z Aukra a udelat chlastacku pod zaminkou programatorske session... ;)

[30] Grovik e-mail 20. 11. 2011, 11:07
Do Prahy to nestíhám (mám i jiné starosti). Ovšem jinak bych to bral. Někdo z Plzně?

[31] Jenda 20. 11. 2011, 11:13
Grovik: Jo, nějaká šance, že bych tě pozval do hospody a vytáhl tam z tebe ten script? :))

[32] georgik 20. 11. 2011, 11:14
Grovik: Jo jeden plzenak by se tu nasel;) Tak kdy zajdem na pivko probrat sva reseni :)

[33] Grovik e-mail 20. 11. 2011, 13:36
Dneska píšu nový skript... poněkud přepracovávám nakupování.
Tam je podle mě největší problém.
Totiž detekce aukce, ať je jaká chce je strašně moc závislá na konektivitě a vytíženosti Aukra.

[34] Petr Hacker e-mail 21. 11. 2011, 00:56
To Grovik: dělat to přes http by dělal jen velkej blbec. U http jak píšeš je to závislé na vytíženosti a konektivitě a opravdu žádné optimalizace nemají smysl. A divil by ses, ale na něco je opravdu rychlejší eregi_replace, na něco preg_match a na něco prosté str_replace. A na tomto nějaký čas naženeš. Taktéž je někdy vhodné použít if a někde switch. A takto můžu pokračovat do nekonečna. Ale pokud si myslíš, že to optimalizovat nejde, pak si asi nikdy nepsal nic velkýho. V době, kdy jsem dělal pro centrum.cz jsme optimalizovali PHP do poslední mikrosekundy - při daném počtu návštěv to dělalo obrovskou zátěž...

[35] genicka e-mail 21. 11. 2011, 12:33
Nerozumím řeči vašeho kmene, ale kluci programátorští, jestli někdo z Vás má doma iRobota z téhle soutěže a kvůli kabelům a podobným věcem co tam má by se mu stejně nehodil, tak mi ho můžete věnovat. Uděláte dobrý skutek před Vánoci a já vás budu velebit. Můj mail si tu určitě nějak vyjedete. Díky předem

[36] mi-llan 21. 11. 2011, 13:03
Pro ty co se nezučastnili loňské vánoční akce aukra, kdy bylo každý den akce vystaveno i několik desítek zboží za velmi vyhodnou cenu. Běžný uživatel čekal (číhal) u PC, ale smula. Několik uživatelu se doslova podělili o ceny a byli schopni přihodit i na několik aukci takřka ve stejnou sekundu. Dokonce vznikly i takové paradoxy že v aukci byl jen 1 kus nabízeného zboží a i 5 vyhercu (robotu). A co na to tehdy aukro ? NIC počkali rok upravili system aukra že již nevidíte vyherce, nabrali Junory povolili aukce neregistrovaným a vydělavají dál.

[37] 1Akzuz1 e-mail 21. 11. 2011, 13:07
Ahoj,prosím Vás jak na aukru vyhledám nový registrované lidi + aukro plus? Děkuji :-)

[38] lenulka 21. 11. 2011, 13:28
jste fakt dobří,strávila jsem na aukru přes 3 hodiny hledáním ipadu a vy tady píšete že to máte do pár sekundy vyhledaný. lituji že nejsem programátor, hledání vzdávám...ač jsou ceny velmi lákávé.

[39] radka e-mail 21. 11. 2011, 13:33
Tak to je mazec a díkec:-) takže ani nezkoušet :-(

[40] jazyk 21. 11. 2011, 14:04
Muzu se zeptat v jekem jazyce to pisete? Php, perl, ..?

[41] Lucie e-mail 21. 11. 2011, 14:08
jsem na tom podobně jak lenulka.....bohužel programátorské geny jsem nepodědila..takža bye bye....a všichni nadaní programátoři:UŽIJTE SI TO!!:)

[42] Grovik e-mail 21. 11. 2011, 14:35
Petr: To by mě fakt zajímalo jak taháš z Aukra data když ne přes HTTP dotazy. Protože jiný další protokol co Aukro dovede je HTTPS. Ale to je jaksi mimo mísu.
Pochopitelně jde komunikovat s HTTP serverem pomocí telnetu.. ale to zase o tolik rychlejší není. Za to je to o dost pracnější.

Ohledně optimalizace PHP. Ano jistě je mezi funkcemi rozdíl. Na druhou stranu. Nejužší hrdlo je stále konektivita.
Pokud je mezi zasláním požadavku a hlavičkou zpoždění 1-2 sekundy tak to prostě rychleji nepůjde.

[43] jazyk 21. 11. 2011, 14:53
Muzu se zeptat v jekem jazyce to pisete? Php, perl, ..?

[44] Luk 21. 11. 2011, 15:08
No vidíte a proto jsem si pronajmul v Polsku server a to přímo ve městě ve kterém hostuje Aukro, takže odezvu na jejich servery mám do 2-3 ms :)

[45] Luk 21. 11. 2011, 15:12
Když k tomu připočtete, že program na porovnávání záznamů mám psaný v C++ přímo pro linux, takže žádný interpret to nebrzdí, tak to zvládá dělat i přes 500 dotazů za vteřinu...

[46] DQRQW e-mail 21. 11. 2011, 16:06
ZMRDI HRAJTE JAKO OSTATNÍ A NE PODVODEM

[47] Petr Hacker e-mail 21. 11. 2011, 16:06
To Luk: tak to jsi teda "borec" :)
500 dotazů za vteřinu = znamená 500 aukcí za vteřinu? O něco málo více jsem měl předtím, než jsem začal optimalizovat :D

[48] Luk 21. 11. 2011, 16:12
Ano, 500 aukcí za vteřinu nebo uživatelů za vteřinu, záleží co se tomu pošle jako vstup. Když porovnám rozdíl mezi UID zadavatelů těch minulých aukcí, tak by celý proces nalezení cílené aukce a přihození neměl zabrat více než ty 3 vteřiny, no uvidíme :)

[49] DQRQW e-mail 21. 11. 2011, 16:34
ZMRDI HRAJTE JAKO OSTATNÍ A NE PODVODEM

[50] Jeanlagi 21. 11. 2011, 16:41
Skvělá diskuze. Ověřování lidského uživatele při dotazu na vás.

[51] Petr Hacker e-mail 21. 11. 2011, 16:42
To Luk: tak ty musíš být jeden z těch bláznů, co to dělají pořád přes http, viď? Na rovinu? Nemáš šanci... Když už vy amatéři pochopíte, že tady nejde o sekundy, ale milisekundy? Taky soutěží borci, kteří přímo tu aukci nacházejí v rozsahu 300 - 500 milisekund... (zrovna včera jsem se jedním takovým kolegou bavil a chlubil se mi, že už se dostal skoro na 320 ms). Žádné sekundy :D
Fakt mě to baví :D :D :D

[52] Luk 21. 11. 2011, 16:55
Ano, 320 ms lze, to je jeden dotaz, v tomhle případě už tedy ale nejde o "zkoušení aukci", ale opravdu o nabourání databáze skrze SQL injection, za což by mohl na pár let za mříže, pokud by se Aukro bránilo...

[53] Luk 21. 11. 2011, 16:57
To co tady deláme my ostatní je plně legální automatizace lidského faktoru, nijak nemodfikujeme vstupní data a nemeníme SQL dotazy, pokud jim tam našel opravdu SQL Injection tak je to opravdu borec a klobouk dolů, ale zahrávat si s něčím takovým, to už chce pořádnou odvahu...

[54] A přes co? 21. 11. 2011, 16:58
Petře, můžete tedy jen říci, přes co, když ne přes HTTP, provádíte svůj skript Vy? (nejsem programátor, ale zajímá mne srovnání)

[55] Luk 21. 11. 2011, 17:07
To by mě taky zajímalo, jelikož získat data ze stránky jinak než strze http nejde a i kdyz se připojíš přes telnet, tak stejně to jde stále pres http akorát v textové podobě. jako chápu, že nějaký administrátor aukra co přijde k serveru píchne tam usb flash disk a ty data si stáhne, tak že ten to přes http získávat nemusí... Ale jinak opravdu by mě to zajímalo, navíc rychlost těch požadavků přes síť je limitovaná právě tím fyzickým faktorem přenosového média, když crackuješ hesla přes internet tak neuděláš 10 000 000 kombinací za vteřinu, jak na localu...

[56] Petr 21. 11. 2011, 17:23
Ahoj bylo by možné udělat robůtka co vyhledá emailové adresy uživatelů na aukru a jménem aukra je pozve k návštěvě a vyzkoušení portálu auktiva.cz ?
Nejen že by to byl skvělej for, ale ještě by to pomohlo všem kteří hledají alternativu k aukru, nebo skutečný aukční portál, jelikož aukro se stává eshopem

[57] Kolemjdoucí 21. 11. 2011, 18:28
tak kolik už máte kávovaru? :) není čas co, když to ručně prohledáváte :D :D Script?! doesn´t work? :D

[58] Grovik e-mail 21. 11. 2011, 18:58
Vzhledem k tomu že můj skript pracuje i jinak než podle uživatelů tak jsem v pohodě ;-). Jen to trvá trošku déle :D

[59] Kolemjdoucí 21. 11. 2011, 19:06
tak kolik už máte kávovaru? :) není čas co, když to ručně prohledáváte :D :D Script?! doesn´t work? :D

[60] Luk 21. 11. 2011, 19:21
Já mám jeden... Já su spokojený :)

[61] Jenda 21. 11. 2011, 19:23
Kolemjdoucí: Scripty natolik nefungují, že kvůli nim zrušili soutěž. :D

[62] Grovik e-mail 21. 11. 2011, 19:46
Jak jsem slíbil ukázka skriptu
http://blog.josefnemec.cz/2011/11/aukro-stoplo-ehm-soutez.html

[63] Jenda 21. 11. 2011, 20:02
Grovik: Měli by zaměstnat vás a podobně schopné lidi, ale pochybuju, že byste chtěl mezi těma neschopnýma polákama pracovat. :)
Ale ono se nejedná jen o tuhle akci, jakékoliv změny na aukru jsou doprovázeny výpadky, nefunkčností, atd. Prodejci by mohli vyprávět.

[64] V e-mail 21. 11. 2011, 20:08
Tak ja jako blbec ruco prosla par set stranek a vy takhle podvadite. To vam neni lito normalnich lidi? :-D

Ale pokud bych to mela hodnotit objektivne, tak GZ ze dokzete napsat neco takovyho :)

A ted mi nekdo uvarte kafe, pac ten kavovar nikdy nedostanu :(

[65] Luk 21. 11. 2011, 21:46
To Grovik: Pěkný script, ale šlo by to i mnohem jednodušeji a rychleji, nač stahovat celý zdrojový kód stránky když můžem použít prvních 30B z adresy http://aukro.cz/company_icon_get_data_ajax.php?user=xxxxxx , která vrací adresu majtele účtu a v případě aukrem vytvořených účtů to je Allegro Group CZ.

Ke stahování stránky pak můžebe využít libcurl, což podle srovnávacích testů fopen vs. fsockopen vs. curl dopadl nejlépe (nejrychleji)...

<?php
function getFile($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RANGE, "0-30");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$ret = curl_exec($ch);
curl_close($ch);

return $ret;
}

function checkUser($uid)
{
$s = getFile("http://aukro.cz/company_icon_get_data_ajax.php?user=" . $uid);

if (preg_match("#<p>Allegro Group CZ, s.r.o.</p>#i", $s) || preg_match("#<!DOCTYPE html PUBLIC "-//W3C//#i", $s))
{
return true;
}
else
{
return false;
}
}

$uid = $_GET[uid];

if (!empty($uid))
{
for ($i = $uid; !checkUser($i); $i++);

echo "<a href=http://aukro.cz/listing/user.php?us_id=" . $i . " target=_blank>http://aukro.cz/listing/user.php?us_id=" . $i . "</a><br /><br />";
}
?>

[66] Luk 21. 11. 2011, 21:55
A vzhledem k tomu, že UID uživatelů, které aukro registruje jsou téměř hned za sebou (tam bylo rozpětí ani ne 1000 UID), tak nám stačí počkat na UID zadavatele první aukce, ty zbylé pak najdeme během pár vteřin...

[67] Grovik e-mail 21. 11. 2011, 22:15
LUK: Máš recht. Tohle bylo na ukázku. Původně ten skript uměl i jinačí věci. Ale nechtěl jsem ho tak pouštět do světa. ;-). Blbců je všude plno.
Navíc tohle má výhodu, že to nejde zablokovat.

[68] Necroman 22. 11. 2011, 09:59
Aukro na to slo pravdu hloupe zadavat nove aukce od novych uzivatelu. Stacilo, aby ne zadali novou akci pro soutez, ale zmenily kompletne popis existujici nastrcene aukce treba "Historie madarskeho truhlarsvi ve trech kniznich dilech" zadane treba uz pred tremi dny. Pokud se nikde neeviduje cas upravy aukci, tak by roboti meli prinejmensim trochu vice prace :)

[69] Luk 22. 11. 2011, 11:21
To Necroman: To by taky šlo docela lehce obejít. Proti tomuhle je jediná ochrana (a stále jen částečná), za každým novým načtením stránky požadovat zadání captcha kódu - to do jisté míry script zastaví, ale zároveň to i dost znepříjemní život obyčejným uživatelům, kteří to budou muset opisovat taky. A nebo potom snímat počet požadavků za vteřinu a v případě, že toto číslo překročí třeba 1 / vteřinu z jedné IP adresy, tak tuto adresu automaticky přidat na dočasný banlist. Nicméně opět zde může nastat situace,kdy se nedopatřením na banlist dostane i běžný uživatel...

[70] Necroman 22. 11. 2011, 13:03
Luk: udelat jednoduchy load balancer, ktery vrati kazde IP adrese max jeden request za vterinu (obrazky a js, css nacitat bez omezeni)
Jen je problem, co s JSON/AJAX sluzbami, pres ktere si umim predstavit, ze nekteri podnikali utok ted pri "Aukro nadeluje".

[71] Ji®in e-mail 22. 11. 2011, 15:10
Zdravim... Petr Hacker. Muzem mi prosimte tedy rict, pres jaky protokol jsi to delal ? Docela me to zajima. Sedime tu 2 studenti FUT VUT 3 rocnik a nechapem,jak jinak jsi to delal.

[72] Necroman 22. 11. 2011, 15:29
Mam stejny dotaz, jak to tedy delal - me napadaji jen AJAXove sluzby, ktere by mu mohly neco rozumneho vracet? Pokud nam tedy jen nevesi buliky na nos :) Jako vystudovaneho matfyzaka by me to take zajimalo.

[73] georgik 22. 11. 2011, 15:46
Jeste by mohl taky pouzivat aukrovske WebAPI, pres webove sluzby, ale to je taky http...

[74] Dozz 22. 11. 2011, 15:55
toGeorgik: Taky si myslím. Odpověď by mě zajímala také.

[75] Luk 22. 11. 2011, 16:00
Všechno je to http, http je služba serveru na portu 80 a v případě, ze Aukrovský server ty data ani jinak neposílá, tak ani není jiný způsob jak je získat... Podle toho co tu napsal šlo nejspíš jen o nějakého "všeználka"...

[76] Dozz 22. 11. 2011, 16:01
toGeorgik: Taky si myslím. Odpověď by mě zajímala také.

[77] Dozz 22. 11. 2011, 16:04
to Luk: ...používal ty web. služby Aukra vzal to tak, že SOAP je protokol,a nezamyslel se nad tou komunikací...

[78] Petr Hacker e-mail 22. 11. 2011, 16:13
Zdravím pánové,
původně jsem to nechtěl odhalovat (a v podstatě ani nyní nebudu), protože je to know-how (i když teď už vlastně k ničemu). SOAP to nebyl - ten jsem ve skriptu využíval pouze na zakoupení předmětu. Nicméně ty, které to opravdu zajímá a dají si tu práci zkusím navést:
zkuste si zjistit, na jakých serverech allegro provozuje databáze a zkuste zapojit třeba port scanner... Až najdete danou službu, zkuste si zjistit verzi a myslím, že to bude všem jasné. Vyžaduje to trochu znalostí a zkušeností, ale tato nápověda je myslím až velmi vypovídající... Navíc jsem nebyl sám, kdo na toto přišel, takže to nebude až taková věda...
PS: port 80 to určitě není :D

[79] Qwe 22. 11. 2011, 16:20
Petr Hacker: Oracle na HP no a co? Jak mam vedet IP tech serveru?

[80] Qwe 22. 11. 2011, 19:00
Petr Hacker: Navic jestli databazove servery maji verejne pristupne, tak jsou pekne hloupi.

[81] Luk 22. 11. 2011, 22:50
To je pravda, já co jsem zatím pracoval ve 2 firmách a všude byly databázové servery pouze v lokální síti a přístupné z venčí pouze skrze VPN... Nikdy taky nebyl problém s nějakým narušením bezpečnosti...

[82] Jirka e-mail 25. 11. 2011, 23:41
Opravdu bych se přimlouval dát ten script vydražit na Aukro. To by byla prča!!!!

[83] pohled zhora 05. 12. 2011, 19:13
Kdyby aukro mělo kvalitní programátory, tak jde sedět pan Petr

[84] Petr Hacker e-mail 06. 12. 2011, 16:45
Ty seš nějakej chytrej :)
Nicméně tě můžu ubezpečit, že i kdyby měli (jakožto že nemají) dobré programátory, tak by se nedělo nic. Kde není důkaz není zločin... A to nejenom v té naší banánové republice...

[85] Pet www03. 09. 2013, 18:09
No výzvy jsou dobré. Nejsem si jistej, že to pujde tak lehce. Určitě tam bude nějaký chyták.

Přidat komentář

Jméno
E-mail
Web
Text
    Odesláním souhlasíte s pravidly.

Kategorie blogu

Twitter feed

Poslední články

Poslední komentáře

Mark Fumi: Velké poděkování obchodním financním firmám za záchranu života svého syna nikdy bych to udělal bez vaší finanční pomoci, téměř jsem se vzdala života, protože moje jediná dítě a syn ležel v polovině mrtvého v nemocnici a pro mě nebyly peníze provozuj operaci, že... Ukázat
Ben Walter: Jmenuji se Ben Walter Jsem tady, abych svědčil o úvěrové společnosti, která mi pomohla půjčku, kterou jsem hledala, život byl pro mě těžký a nebyly peníze na dokončení mého projektu Moje banka mi odmítla půjčit mi nějaké zakladatele kvůli mému kreditní skóre jsem... Ukázat
Rita Reagan: Nikdy jsem nevěřil v půjčování úvěrů na internetu, až jsem téměř ztratil svůj projekt a byl jsem zmatený a nevím, co mám dělat, než jsem narazil na úvěr půjčovací společnost s názvem Trade Finance Company zpočátku jsem nikdy nechtěl udělat žádnou transakci s... Ukázat
Pastor Osas Freeman : Říkám vám: Ptejte se a bude vám dáno; hledat a najdete; zaklepat a dveře se vám otevřou. ... (Matouš 7: 7) Vážený zákazníku. Takže bez podpory vaší banky můžete obdržet Moje finanční podpora splácet dluhy a platit účty a dělat svůj projekt soukromý úvěr JETE V PŮSOBNOSTI ÚVĚRU @... Ukázat
selma neva: Dnes mám velkou radost s rodinou. Jmenuji se SELMA NEVA žijící v USA. Můj manžel mě nechal 3 roky dobře a já ho tak moc miluji, hledal jsem způsob, jak ho od té doby dostat zpátky. Zkoušel jsem spoustu možností, ale nevrátil se,... Ukázat

Vyhledávání

Nastavení

Velikost písma: Abc Abc Abc