Opis zlecenia
Długo po opracowaniu w pełni funkcjonalnego scrapera portal wprowadził firewall CloudFlare. Reguła wyrzuca 403 na stronie logowania, jeśli przeglądarka ma zmienionego user agenta / jest sterowana przez WebDriver. Dotyczy C# + Selenium, Python + PhantomJS. Konsola wskazuje błąd WAF challenge już po wejściu na stronę logowania. Próba logowania / interakcja z formularzem wywołuje 403. W zwykłej przeglądarce Chrome bez ua zmienionego wtyczkami / zmienionego przez Dev Tools konsola nie wyświetla nic nt. WAF challenge.
403 w zwykłej przeglądarce Chrome, gdy ua zostaje zmieniony:
- wtyczkami
- WebDriverem
403 nie występuje w zwykłej przeglądarce Chrome, gdy ua zostaje zmieniony w symulacji Dev Tools.
Firefox i Opera:
403 nie występuje w zwykłych przeglądarkach, gdy ua zostaje zmieniony wtyczkami
403 występuje w instancji WebDriver
Zmiany http header requests na adekwatne do sytuacji braku 403 nie przynoszą rezultatu.
Maksymalny uzyskany efekt:
1. Zalogowanie w zwykłej przeglądarce bez zmiany ua
2. Zmiana ua dowolną metodą po zalogowaniu
3. Możliwość nawigacji po portalu
4. Po wylogowaniu z wciąż zmienionym ua: 403
5. Konieczność czyszczenia pamięci przeglądarki
Oczekiwane rozwiązanie:
bypass WAF challenge -> poprawna metoda zmiany ua, pozyskiwanie tokenów w cookies przed zmianą ua i każdorazowe cofanie zmiany ua przed wylogowaniem