Opis zlecenia
1.
Problem obejmuje tylko przeglądarkę Chrome i dotyczy jej samej, pojawił się długo po opracowaniu w pełni funkcjonalnego scrapera. Portal internetowy używa CloudFlare, który, jeśli user agent zostaje podmieniony, zwraca błąd 403 po interakcji z modułem logowania.
Jeśli zmiana ua nastąpi dopiero po zalogowaniu w zwykłej instancji Chrome, to można nawigować po całym portalu, jako zalogowany użytkownik. W momencie wylogowania (ze zmienionym ua) wywołuje 403.
403 jest wywołane, gdy ua zostaje podmieniony:
- Selenium Chromedriver
- wtyczka Chrome UA Spoofer
- wtyczka Modheader
403 nie jest wywołane, a logowanie do portalu przebiega bez przeszkód, gdy ua zostaje podmieniony w ramach Developer Tools w zwykłej przeglądarce.
403 jest wywołane w Selenium Chromedriver, jeśli scraper zostaje uruchomiony z domyślnym ua (przestarzały dla portalu), podmienionym później przez dotychczas skuteczne Developer Tools.
Problem występuje niezależnie od modyfikacji różnych http headers request, w tym Cache-Control: max-age=0, Pragma: no-cache.
Problem nie obejmuje przeglądarek Firefox i Opera, tzn. logowanie do portalu jest możliwe, gdy ua jest podmieniony wtyczkami. Dodatkowo, problem nie występuje w tych przeglądarkach nawet, jeśli http headers są ze sobą sprzeczne (ua urządzenia mobilnego, system desktop itd.), albo podają równocześnie dwa ua, co wyklucza dane zabezpieczenie CloudFront.
Próby zmodyfikowania http headers request w Chrome na takie, jakie wysyłają Firefox i Opera nie dały rezultatu. To jednoznacznie wskazuje, że CloudFront reaguje wyłącznie na zmianę ua Chrome inaczej, niż przez Developer Tools oraz w Chromedriver również przez Developer Tools.
Scraper ma funkcję zmiany przeglądarki w configu i używania odpowiedniego drivera.
Oczekiwane rozwiązanie:
- poprawka mechanizmu podmiany ua i/lub http headers w scraperze dla instancji Chrome
- dodanie zmiennej w configu dla niedomyślnej ścieżki instalacji Firefox lub Opera