Autor Zpráva
midlan
Profil
Ahoj všem. Potřebuji v odchytat nakolik HTTP požadavků, které prohlížeč posílá. Dosud jsem k plné spokojenosti používal Chrome developer (F12), ale u jistých požadavků má problém zobrazit tělo odpovědi. Konkrétně se jedná o několik XHR požadavků asi na HTTP2 server. Hlavička požadavku totiž obsahuje pár nových várazů:

:authority
:method
:path
:scheme

Místo těla odpovědi (záložky preview a response) však vidím jen hlášku "Failed to load response data". A to i když jsem v nastavení developer nástroje zaškrnul "Log XMLHttpRequests".

Neúspěšný jsem také ve firebugu, ten u zmíněných requstů v záložce odezva píše:

Reload the page to get source for: ...url requestu....

Zřejmě data zahodí, protože hned po těch requestech u kterých potřebuji znát odpověď následuje nějaké přesměrování.

Otázka je tedy jasná, jak se k těm odpovědím dostat? Nějakým odchytáváním síťového provozu? Dodávám, že spojení je šifrované, tedy https.
TomášK
Profil
Odchytávání síťového provozu nepomůže, spojení je šifrované. Musel bys provést Man-in-the-middle, což je kanón na vrabce. Použil bych curl z příkazového řádku. V kontextovém menu při klepnutí na požadavek bývá 'Copy as cURL', což vygenerují příkaz, který odešle daný požadavek. Netuším, jestli je binárka přímo pro windows, ale určitě funguje v cygwinu. Případně nabootovat nějakou live distribuci linuxu, myslím, že bývá mezi základními balíky.
midlan
Profil
Bohužel, je to požadavek který nelze opakovat. Jedná se o průchod platební bránou pro platební karty.

Abych rovnou vyvrátil případné podezření: odchytávám svoje požadavky a snažím se zautomatizovat nákup na jednom nákupním portále.
quatzael
Profil
midlan:
A co SmartSniffer, nezkoušel jsi?
TomášK
Profil
quatzel
Poradí si to s HTTPS?

midian
Napadá mě zabránit prohlížeči, aby odelslal ten první požadavek, ale nechat ho, aby se o to pokusil. Pokud se ten požadavek pošle třeba po kliknutí na tlačítko, tak před tím vypnout síť / změnit DNS, aby nemohl dojít. Vytáhnout si, co posílal, zapnout síť/DNS a poslat to přes cURL na skutečný server.

Nebo najít plugin, který nevymaže seznam requestů při změně stránky. Měl jsem pocit, že to i šlo nastavit někde ve webdeveloper tools, ale nenašel jsem to. Rychlé hledání říká, že takové pluginy jsou, třeba addons.mozilla.org/En-us/firefox/addon/httpfox
quatzael
Profil
TomášK:
Poradí si to s HTTPS?

Já nevím, zkoušel jsi to?
TomášK
Profil
quatzael
Ne. Kouknul jsem se, do SmartSniffer dělá a vypadá to, že umí "jen" zachytávat síťový provoz. Což v případě HTTPS nepomůže. Pokud to nedokáže víc než sledování provozu, bude vidět jen, že se navázalo spojení, zřejmě i adresa serveru, a pak zašifrovaná data. Podle mě je to nepoužitelné, ale neznám ten nástroj, proto jsem se ptal, jeslti mi něco uniká.
quatzael
Profil
TomášK:
Nevím, má to v názvu "smart", tak snad by to mohlo něco umět navíc..
Davex
Profil
midlan:
Nestačilo by v prohlížeči vypnout HTTP/2 a komunikaci odchytit ve vývojářských nástrojích s vypnutým mazáním logu při přesměrování?

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: