2016-01-15 2 views
2

Мой сайт по умолчанию связан с HTTP. У меня есть сертификат, который позволяет HTTPS, но только определенные области на нем заставляют безопасное соединение.Вход с HTTP на HTTPS

Вход обрабатывается через Ajax, и я хочу начать использовать SSL на этом, даже если запрос поступает из HTTP.

Я попытался заставить адрес для запроса иметь HTTPS, и он отлично отвечает. Однако при обратном вызове ajax кажется, что сеанс никогда не был установлен, несмотря на то, что ответ был одобрен.

Если запрос исходит от HTTPS, все идет гладко.

Почему это происходит?

Я могу понять, почему браузер HTTPS отклоняет запрос HTTP, но обратная ситуация (HTTP to HTTPS) имеет, по меньшей мере, своеобразный результат, поскольку браузер не вызывает каких-либо ошибок. Сессия, похоже, никогда не запускалась после запроса Ajax, несмотря на все данные, полученные из ответа, говорящего мне об этом.

ответ

3

Система входа в систему, вероятно, будет основана на информации о сеансе и/или файле cookie.

Cookie, установленный через HTTPS и flagged as secure (см. Раздел 4.2.2 Set-Cookie Syntax), не может быть прочитан по протоколу HTTP по соображениям безопасности.

Таким образом, что происходит в вашей системе, это то, что ваши пользователи проходят аутентификацию через HTTPS, и они будут зарегистрированы до тех пор, пока они будут продолжать использовать HTTPS. В HTTP сеанс не будет существовать.

Вы должны либо не отмечать этот файл cookie как безопасный, либо переключить весь сайт на HTTPS (рекомендуемый вариант). С 2016 года на самом деле нет смысла иметь только определенные страницы веб-сайта под HTTPS, если у вас уже есть сайт, который прослушивает HTTPS.

Смежные вопросы