request () небезопасен в Laravel с балансировщиком нагрузки и TrustedProxies - PullRequest
0 голосов
/ 08 сентября 2018

Почему request()->isSecure() возвращает false при посещении HTTPS-URL? Я использую Laravel Forge и у меня есть балансировщик нагрузки. При регистрации запроса я получаю эти данные:

request()->url(),          // "http://xx.xx"
request()->isSecure(),     // false
request()->getClientIps(), // XX.XX.XX.XX 

В TrustProxies (который добавляется в массив $middleware в Http/Kernel.php):

protected $proxies = [
    'XX.XX.XX.XX', // exactly the same as in the logged data above
];

В моем AppServiceProvider boot() методе:

if (env('APP_ENV') == 'production') {
    \URL::forceScheme('https');
}

Edit:

Я также использую Cloudflare, и я добавил все прокси Cloudflare к $proxies. Проверьте логи, я вижу эти заголовки в запросе:

X-Forwarded-Proto: http
Cf-Visitor:        {"scheme":"https"}
Referer:           https://xx.xx/someurl
...