handle($request); } $fullBaseUrl = Configure::read('App.fullBaseUrl'); if (!$fullBaseUrl) { throw new InternalErrorException( 'SECURITY: App.fullBaseUrl is not configured. ' . 'This is required in production to prevent Host Header Injection attacks. ' . 'Set APP_FULL_BASE_URL environment variable or configure App.fullBaseUrl in config/app.php', ); } $configuredHost = parse_url($fullBaseUrl, PHP_URL_HOST); $requestHost = $request->getUri()->getHost(); if ($configuredHost && $requestHost && strtolower($configuredHost) !== strtolower($requestHost)) { throw new BadRequestException( 'Invalid Host header. Request host does not match configured application host.', ); } return $handler->handle($request); } }