Я настраиваю веб-сайт корзины покупок, однако у меня возникают проблемы с совместным использованием сеансов PHP между HTTPS и HTTP.
Мой безопасный адрес: https://secure.domain.com Мой постоянный адрес: http://domain.com
Я прочитал здесь несколько страниц о serverfault и сам пришел к решению. Я хотел бы знать, является ли мое решение безопасным и практичным.
Мое решение: 1: в новом сеансе сохраните идентификатор сеанса PHP, IP-адрес пользователя и идентификатор (случайно сгенерированное 6-значное число и сохраненное на компьютере клиента как файл cookie) в базу данных 2. Когда клиент переходит на страницу HTTPS. Страница проверяет базу данных на соответствие идентификатора и IP-адреса для идентификатора сеанса PHP.
Если у вас есть лучшее решение, поделитесь
Спасибо
Проблема с этим решением заключается в том, что любые данные аутентификации, включая идентификатор сеанса и случайный идентификатор пользователя, которые вы отправляете по HTTP, могут быть украдены из сети. Видеть Захват сеанса.
Есть два жизнеспособных решения:
Сделайте весь сайт доступным только для HTTPS.
Разрешите HTTP, но перенаправьте пользователя на HTTPS, прежде чем разрешить ему вход в систему. Затем сделайте любые файлы cookie сеанса только HTTPS, чтобы, если пользователь переключится обратно на HTTP, его данные сеанса не будут отправлены в открытом виде.