Пометка файлов cookie как «безопасных» в формах авторизации, когда веб-сайт находится за балансировщиком нагрузки, обслуживающим сертификат TLS

Недавно у меня возникла небольшая проблема с сайтом на AppHarbor, о котором я писал на их форумах поддержки: Request.IsSecureConnection всегда возвращает false

Короче говоря, поскольку балансировщик нагрузки расшифровывает HTTPS-трафик до того, как он попадет в веб-приложение, такие атрибуты, как Request.IsSecureConnection , и конфигурация, такая как requireSSL , в формах auth не работают. как и ожидалось. Фактически, в последнем случае вы даже не можете пройти аутентификацию, поскольку приложение считает, что запрос не поступает по HTTPS.

Это форма auth, которая особенно проблематична, потому что без нее куки не устанавливаются как «безопасные» и отправляются обратно по HTTP, если к сайту обращаются только по доменному имени, и неявно обслуживает небезопасную схему URL.

Каким будет лучший обходной путь для этого? Я бы предпочел использовать встроенную конфигурацию безопасности, может ли кто-нибудь увидеть способ переопределить реализацию, которая проверяет, является ли соединение безопасным? Достаточно легко определить, был ли запрос обслужен по HTTPS (на основе Request.Url.Scheme или заголовка X_FORWARDED_FOR ), это просто вопрос аккуратной привязки.

9
задан Mike Mertsock 2 August 2013 в 20:41
поделиться