PHP aplikace na subdoméně – Varnish stripuje cookies a Authorization header
Dobrý den,
Začínám provozovat vlastní PHP aplikaci na subdoméně previews.ondrejhromadko.com (webhosting 315978). Aplikace má sloužit jako klientský portál.
Problém: Varnish cache na webhostingu stripuje cookies a custom HTTP headery (včetně Authorization: Bearer) před předáním requestu na PHP. Výsledkem je že PHP aplikace nemůže autentizovat uživatele.
Ověření problému: Pomocí getallheaders() jsem ověřil že PHP nedostává:
CookieheaderAuthorizationheader- Žádné custom headery
Varnish předává pouze základní headery (Accept, User-Agent atd.).
Co potřebuji:
- Aby Varnish předával Cookie header a Authorization header pro subdoménu
previews.ondrejhromadko.com, - nebo aby byla tato subdoména vyňata z Varnish cache úplně – jde o dynamickou PHP aplikaci kde caching nedává smysl,
- případně informaci o sticky sessions – každý request dostane jiné session ID protože load balancer přiřazuje requesty různým serverům
Dočasné řešení: Aktuálně předáváme autentizační token jako URL query parametr ?_token=... což je bezpečnostní riziko a neprofesionální řešení.
Technické detaily:
- Webhosting: 315978 (ondrejhromadko.com)
- Subdoména: previews.ondrejhromadko.com
- PHP 8.0
- MariaDB 10.4
- Varnish/8.0 (Via header potvrzen)
Děkuji za pomoc.
1 Odpověď
Dobrý den,
na sdíleném webhostingu není možné upravovat chování Varnish cache ani nastavovat výjimky pro konkrétní hlavičky či subdomény. Stejně tak není možné Varnish pro konkrétní subdoménu vypnout nebo zajistit sticky sessions. Webhostingy optimalizujeme pro běžné webové aplikace.
Pro provoz aplikace, která vyžaduje předávání vlastních hlaviček a plnou kontrolu nad requesty, doporučujeme využít spíše VPS nebo dedikovaný server, kde je možné si chování serveru plně nastavit dle Vaší potřeby.
Děkujeme za pochopení.