Лак предотвратить доступ ESI из внешнего источника
У меня есть Varnish и работает, и все работает просто отлично.
Но я использую ESI <esi:include src="/esi/cache/temp.phtml?id=1"/>
и это хорошо работает, но я хочу, чтобы внешние ресурсы не могли получить доступ к каталогу esi.
Теперь у меня это работает, установив заголовок в лаке с req.esi_level
, Это будет 0, если вы обращаетесь к ESI напрямую и хорошо, иначе это будет n+1
Единственная проблема, с которой это связано, заключается в том, что я думаю / надеюсь, что Varnish сам по себе может помешать доступу к каталогу esi.
tl; dr, как вы можете запретить внешний доступ к каталогу esi с помощью лака
1 ответ
В вашем VCL вместо установки заголовка со значением request.esi_level, просто короткое замыкание запрашивает эти ресурсы с esi_level, равным 0.
псевдо-VCL:
if (req.esi_level == 0 && req.url ~ "^/esi/.*") {
error (403);
}