Совместное использование PHP-сессии между HTTP и HTTPS

Я настраиваю веб-сайт корзины покупок, но у меня возникают проблемы с разделением сеансов PHP между HTTPS и HTTP.

Мой безопасный адрес: https://secure.domain.com/ Мой обычный адрес: http://domain.com/

Я прочитал несколько страниц здесь о сбое сервера и сам пришел к решению. Я хотел бы знать, является ли мое решение безопасным и практичным.

Мое решение: 1: В новом сеансе сохраните идентификатор сессии PHP, IP-адрес пользователя и идентификатор (случайным образом сгенерированный 6-значный номер и сохраненный на клиентском компьютере в виде файла cookie) в базу данных 2. Когда клиент перейдет на страницу HTTPS. Страница проверяет базу данных на соответствие идентификатора и IP-адреса для идентификатора сеанса PHP.

Если у вас есть лучшее решение, пожалуйста, поделитесь

благодарю вас

1 ответ

Решение

Проблема этого решения заключается в том, что любые данные аутентификации, включая идентификатор сеанса и случайный идентификатор пользователя, которые вы отправляете по HTTP, могут быть украдены без проводов. Смотрите сессию угон.

Есть два жизнеспособных решения:

  1. Сделайте весь сайт только по HTTPS.

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

Другие вопросы по тегам