Wpis z mikrobloga

Może ktoś będzie w stanie pomóc #programowanie #vbnet #vb #net #.net
Mianowicie, robię bota do banggood'a i na początku chce się zająć logowaniem, wszystko było dobrze ale wczoraj banggood dodał captchę do logowania.
Link do logowania: http://www.banggood.com/login.html
Link do generowania captchy: "https://www.banggood.com/index.php?com=imagecode&t=display&" & (New Random).NextDouble()
Z moich obserwacji wynika, że gdy w jednej karcie macie otwarty panel logowania a w drugiej będziecie odświeżać stronę z captchą (goły obrazek generator) i gdy wpiszecie captchę z tej drugiej karty w panelu logowania to zaloguje poprawnie czyli jakoś to musi być zapisywanie. Ciasteczka na 90% odpadają bo nie znalazłem, żadnych zmian.
Kod logowania: http://pastebin.com/K3ST7dxv
Parametr at jest generowany losowo przez serwer ale nie ma dużego wpływu bo przed wprowadzeniem captchy na jednym parametrze przez kilka dni się logowałem
Jeśli ktoś ma pomysł jak zrobić, żeby ta captcha się przypisywała do drugiego requesta to będę wdzięczny ( ͡° ʖ̯ ͡°)
  • 19
@lisek: dzieki za checi, tylko u mnie powinno to byc chyba ok bo najpierw pobieram captche i potem loguje i to dzieje sie na jednym cookiecontainer, ale moze zrobie tak ze do tego cookiecontainer jeszcze przypisze cookie ktore dodaja sie po wejsciu na strone
@3erpl: No właśnie też mi to troszkę na ślepą uliczkę zaczęło wyglądać. A powiedz mi taką rzecz - bo nie do końca chyba załapałem. Szukasz zależności między request/response i rzeczami powiązanymi z tym czy odczytujesz captche, wprowadzasz ją na stronę a tam dupa i nie przechodzi?
@lisek: szukam zaleznosci w jaki sposob serwer bg wie ze akurat ja odswiezylem sobie captche, bo po ip raczej nie zapisuje
A w największym skrócie, chcę się zalogować do banggood'a. tylko nie za pomocą webbrowsera tylko za pomocą requestów
@3erpl: a spróbuj wywołać stronę logowania usuń ciastka i otwórz stronkę z samą captcha -> przepisz to co wyskoczy i powiedz czy zaloguje. Tak wiem uparłem się na te ciastka ale wydaje mi się to jest punktem zaczepienia. Ogólnie gdybym miał coś takiego wykombinować to napisałbym funkcję żeby dla określonej sesji (i tu by chyba padło na punkt COOKIE_ID bo jest expired po zamknięciu przeglądarki - co ułatwia sprawę "losowości" /
@lisek: odpalilem w incognito panel logowania, usunalem ciastka, otworzylem nowa karte z captcha nawet bez randomowej liczby na koncu i poki co po kliknieciu login caly czas laduje
@3erpl: To zakładałbym że może być scenariusz taki jak napisałem wyżej. Errorem bym się nie sugerował bo lepiej jest użytkownikowi wyrzucić dane że problem z username/password niż dać mu powody do głębszych przemyśleń. Jedynie wydaje mi się zostaje "parsowanie" captchy ale w tym temacie już nie pomogę bo się nie znam :(. Co do randomowej liczby na końcu to pewnie jedynie anticache.
@lisek: chyba zrobie tak ze zrobie pierwszy request na stronie login, pobiore z niej obrazek i wypluje go uzytkownikowi i potem request logowania tylko jest maly problem, bo jak otworze strone login.html i sie wygeneruje captcha to jak ja zapisac
Wydaje mi się że nie będzie to zależne bo jeżeli w przeglądarce wywołasz login.html to przeglądarka i tak będzie musiała wywołać drugi request do https://www.banggood.com/index.php?com=imagecode&t=display wysyłając te same ciasteczka i pobrać img captchy. Czyli u siebie musisz zrobić tak samo 2 requesty do login.html i https://www.banggood.com/index.php?com=imagecode&t=display zawierając w drugim requescie ciastka które masz/dostaniesz z login.html. Skubańce nie zwracają w drugim request czystego img tylko stronę która posiada ![]() z src i jeszcze
@lisek: sil mi brakuje juz do tego. czego nie proboje to zawsze cos sie psuje i nigdy chyba sie nie uda, a nie chce robic na webbrowserze bo to ani wydajne ani dobre