Действительно ли использование SSL предотвращает взлом хакерами переменных моих сеансов?

#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 ! Кроме того, это хороший ответ.