#php #security #ssl
#php #Безопасность #ssl
Вопрос:
Мой веб-сайт на 100% зависит от переменных сеансов.
При входе на сервер для сеанса устанавливается имя пользователя клиента, и каждая страница проверяет, задано ли имя пользователя, и использует эту переменную для размещения рекламы и многого другого… но если кто-то взломает эту переменную и изменит ее на любое другое имя пользователя, он может войти в систему и удалить все данные, см. Личную информацию и т. Д
Итак, мой друг сказал мне, что использование SSL предотвратит прослушивание и захват моего веб-сайта всеми хакерами, верно? Потому что я могу сменить свой сервер, и на нем нет SSL, поэтому мне было интересно, стоит ли за это платить? или если бы было другое решение
Большое спасибо, Кевин
Комментарии:
1. Вы не понимаете, как работают сеансы. Даже без ssl невозможно (по определению) украсть данные сеанса с помощью sniffing.
2. хорошо, значит, в моем случае это бесполезно?
3. Возможно, ваша самая большая угроза в этом случае связана с подделкой межсайтовых запросов — когда кто-то создает ссылки на ваш веб-сайт, связанные с помощью
<img>
тегов или чего-то подобного на другом веб-сайте (facebook, веб-форумы, электронные письма на основе HTML и т. Д.), Что Заставляет ваш сервер выполнять действия от имени вошедшего в систему пользователяпользователь. Если вы используетеGET
запросы только для «безопасных» действий, это очень поможет. Прекращение использования сеансов после определенного периода бездействия может уменьшить окно воздействия.4. Я использую $ _SESSION только для важных вещей, базовый использует GET, как язык страницы и т. Д. … Это нормально?
5. @KevAlmighty: когда я веду машину, я поворачиваю руль и кручу педали для ускорения. Это нормально? Не могли бы вы сказать, хороший я водитель или нет?
Ответ №1:
Вы действительно задаете два вопроса: один о SSL и один о сеансах — итак, вот два ответа:
Сеансы работают, предоставляя пользователю файл cookie и сохраняя список переменных сеанса на сервере. В PHP этот файл cookie по умолчанию называется PHPSESSID . Вероятно, вы можете увидеть многие из них, если прямо сейчас посмотрите на файлы cookie в своем браузере. Значение этого файла cookie будет представлять собой набор трудно угадываемых тарабарских символов. Когда вы устанавливаете переменную сеанса, скажем, $ _SESSION[‘username’]= ‘kevin’, часть «username = kevin» сохраняется на сервере.
Если злоумышленник может угадать или получить этот файл cookie, он может установить его в своем браузере и стать «кевином», если у вас нет других контрмер. Но для того, чтобы пользователь мог сменить свой сеанс на кого-то другого, ему придется взломать ваш сервер, чтобы изменить там файлы сеанса. Имя «кевин» никогда не отправляется пользователю.
SSL — это не волшебное решение для обеспечения безопасности, но если вы беспокоитесь о том, что злоумышленник просматривает или захватывает сеанс другого пользователя, это, вероятно, стоит вложений.
Интернет-кафе — простой пример. Много людей собираются и используют Wi-Fi. Веб-страницы распространяются повсюду — даже в вашем собственном теле. Для злоумышленника тривиально также захватывать веб-страницы других пользователей — это включает их токен сеанса. Это так просто, что есть программа под названием FireSheep, которая упростила переход на многие веб-сайты в качестве другого пользователя.
SSL защищает эти веб-страницы и файл cookie сеанса, так что только сервер и авторизованный пользователь могут их прочитать. Злоумышленник все еще может перехватывать данные, передаваемые по воздуху, но для них это просто тарабарщина.
Ответ №2:
Использование https шифрует отправляемые файлы cookie, включая ваш файл cookie сеанса. Это очень безопасно. Хакеры все еще могут нанести удар по вашей сетевой безопасности, отправив ложные сеансовые cookie, но вы в безопасности, потому что хакеры не смогут легко получить идентификатор сеанса при использовании https.
Комментарии:
1. Я хотел бы добавить, что SSL на самом деле больше не является безопасным — вам действительно следует переключиться на TLS ! Кроме того, это хороший ответ.