Strona jest za CloutFlare to po pierwsze.
Po drugie generuje token, który musi być w POST, bo inaczej będzie błąd 302
. Po trzecie na pewno ten przykład nie należy do podstaw jeżeli chodzi o znajomość terminala.
Czy przesłanie hasła cURL’em w postaci jawnej jest bezpieczne w przypadku strony po https?
Sam sobie odpowiedziałeś - HTTPS - nie jest jawne tylko szyfrowane. Tak samo wysyła dane logowania formularz na stronie.
Nikt Ci gotowego curl’a nia da, bo ten musisz sobie sam stworzyć w oparciu o wartość swojego ciasteczka z tej strony i user-agenta przeglądarki i innych nagłówków.
Nie mam tam danych logowania, więc mogę podać przykład, który jednak musisz dostosować.
Podam w oparciu o Firefox, bo tą przeglądarkę najlepiej znam.
- Wchodzisz na stronę logowania.
- Otwierasz monitor sieci
Ctrl+Shift+E
: Wpisujesz fałszywe dane logowania np. asdjasiofha@sdajsdpj.com,
hasło: asdijasoidjapsfhuasd
i ENTER
- Bierzesz pierwszą pozycję na liście. PPM>Kopiuj wartość>Kopiuj jako polecenie programou cURL
Wklej sobie to gdzieś.
Interesuje Cię nagłówek zawierający Cookie
, SEVERID
i rozdzielczosc
Budujesz pierwszą część skryptu wyciągającego token, który jest po tagu </html>
w kodzie strony.
#!/bin/bash
token="$(curl -s 'https://mobidziennik.pl/logowanie' -H 'User-Agent: TWÓJ_USER_AGENT' -H 'Referer: https://mobidziennik.pl/' -H 'Cookie: WARTOŚĆ_CIASTECZKA; SERVERID=TWOJA_WARTOŚĆ; rozdzielczosc=TWOJA_ROZDZILCZOŚĆ' | grep -P '</[html]+>' | cut -d '"' -f6)"
echo -e "TWÓJ TOKEN TO: $token\n\n"
Po dostosowaniu do wartości z Twojej sesji curl wyciąga wartość tokena potrzebnego w drugim kroku i podstawia go pod zmienną $token
.
Token ma długość 128 znaków.
Będzie on właściwy dla bieżącej sesji/cookie.
Teraz to, co skopiowałeś w poprzednim kroku z Firefoxa modyfikujesz.
Dodaj sobie po curl
parametr -i
, aby widzieć odpowiedź.
Modyfikujesz:
--data-raw 'email=POCZĄTEK_EMAILA%40HOST.PL&haslo=HASŁO_LOGOWANIA&t=TWÓJ_TOKEN'
Podmieniając na prawdziwy login i hasło, a także token wygenerowany w poprzednim kroku.
Kod odpowiedzi serwera jest 200
, więc prawdopodobnie działa.
Po tym jak odświeżysz w przeglądarce stronę to powinna być zalogowana.