GNU/Linux >> Znalost Linux >  >> Linux

Guzzle &Sucuri:Oprava chyb požadavku 403

Když používáte klienta GuzzleHTTP, pokud doména, se kterou komunikujete, používá Sucuri, můžete najít nějaké neočekávané výsledky. Obecně se problémy vyskytují ve formě kódů chybové odpovědi 4XX nebo 5XX. Kupodivu se problém objevuje, když adresa URL v prohlížeči funguje normálně (nebo se zvlní), ale u Guzzle představuje nevysvětlitelné 403. Některé z vašich najetých kilometrů se mohou lišit v závislosti na nastavení a konfiguraci domény Securi, ale tento tip vás obvykle může dostat na správnou cestu!

Oprava chyb 403 při používání Guzzle se Sucuri

Pokud máte problém s „ZÍSKAT“ stránku pomocí Guzzle, ale adresa URL v prohlížeči funguje normálně, zkuste to. Pokud nakonfigurujete svého klienta Guzzle tak, aby používal některé specifické hlavičky, může to společnosti Securi pomoci přijmout váš požadavek. V těchto případech se problém ve skutečnosti netýká společnosti Securi, vašeho kódu nebo serveru – problém je spíše v tom, že váš požadavek spustí v jejich systému falešně pozitivní výsledek. Nastavením těchto hlaviček můžete společnosti Securi signalizovat, že váš požadavek není škodlivý.

Vyzkoušejte následující konfiguraci klienta Guzzle:

$guzzle = new Client([
  'headers' => [
    'User-Agent' => 'Name of your tool/v1.0',
    'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding' => 'gzip, deflate, br',
  ],
]);

Co mohou tyto možnosti poskytnout?

Zde použité možnosti Guzzle jsou jednoduše záhlaví volba. Tato možnost používá pole k nastavení hlaviček HTTP, které chcete použít s požadavky. Tato možnost se velmi snadno používá, stačí nastavit klíč záhlaví na klíč a hodnotu záhlaví na hodnotu! Zde používáme následující záhlaví:

  • User-Agent:Tato hlavička je řetězec popisující vlastnosti softwaru, který odesílá požadavek. Pomáhá síťovým kolegům identifikovat typ aplikace, operační systém, dodavatele softwaru a verze. Klíčem je zde pouze nastavit nástroj, který popisuje nástroj, který používáte a který jste vytvořili! (Proto aktualizujte „Název vašeho nástroje“, aby odpovídal.)
  • Přijmout: Toto záhlaví definuje různé typy dokumentů a podtypy, které žádající software přijímá. V tomto případě používáme stejnou hodnotu, jakou by mohl používat moderní prohlížeč. Můžete pokračovat a používat to tak, jak je!
  • Accept-Encoding:Tato hlavička inzeruje, které kódování obsahu je přijatelné pro použití v odpovědi. Obecně se používá k definování kompresního algoritmu, kterému je klient schopen porozumět. V našem případě používáme Gzip, deflate (zlib) a br(Brotli).

S těmito 3 nastavenými nadpisy lze nyní vyřešit falešně pozitivní spouštění v Securi! Můžete pokračovat ve stavbě/používání vašeho nástroje bez dalších bolestí hlavy. A nejlepší ze všeho je, že k vyřešení problému není potřeba nic upravovat v Securi.

Pokud opravdu víte, co děláte s HTTP hlavičkami, můžete pravděpodobně dokonce upřesnit hodnoty Accept tak, aby zahrnovaly pouze doctypes, se kterými se chcete zabývat.

Co je GuzzleHTTP?

Guzzle je HTTP klient založený na PHP, který se používá ke zjednodušení zadávání webových požadavků v PHP. V minulosti jsme se zabývali tím, jak používat Composer, a jako jeden z příkladů jsme dokonce použili Guzzle. Klient GuzzleHttp je uživatelsky velmi přívětivý obal pro funkce PHP curl, které poskytují funkce nativního klienta HTTP. Představte si Guzzle stejně jako používání Curl nebo webového prohlížeče – dáte mu adresu URL a získá zdroje, které url poskytuje. Je to mnohem blíže ke curlingu, protože podobně postrádá vykreslovací modul prohlížeče.


Linux
  1. Cutegram – neoficiální telegramový klient pro stolní počítače

  2. Křížové sdílení původu (CORS)

  3. Chyby instalace pluginu WordPress

  1. Chyby PHP

  2. 403 Zakázané chyby při práci na vašem webu? Firewally, firewally, firewally

  3. Ruční požadavek HTTP(S).

  1. Může Linux vymazat paměť?

  2. Přenést kontext tmelu do schránky klienta?

  3. Poslouchejte žádost o wakeonlan