Предотвращение перехвата сеансаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Предотвращение перехвата сеанса

Сообщение Anonymous »

Как запретить нескольким клиентам использовать один и тот же идентификатор сеанса? Я спрашиваю об этом, потому что хочу добавить дополнительный уровень безопасности, чтобы предотвратить перехват сеанса на моем веб-сайте. Если хакер каким-то образом вычислит идентификатор сеанса другого пользователя и сделает запросы с этим SID, как я могу обнаружить, что на сервере есть разные клиенты, использующие один SID, и затем отклонить попытку взлома?

РЕДАКТИРОВАТЬ

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

Позвольте мне уточнить, что я имею в виду:

Позвольте мне уточнить, что я имею в виду:

p>

После того, как пользователь А авторизуется на сайте example.com, ему присваивается некоторый случайный идентификатор сеанса, для простоты пусть это будет «abc123». Этот идентификатор сеанса хранится в виде файла cookie на стороне клиента и проверяется сеансом на стороне сервера, чтобы гарантировать, что вошедший в систему пользователь остается в системе при переходе с одной веб-страницы на другую. Этот файл cookie, конечно, не должен был бы существовать, если бы HTTP не был без сохранения состояния. По этой причине, если пользователь Б украдет SID пользователя А и создаст на его компьютере файл cookie со значением «abc123», он успешно перехватит сеанс пользователя А, но у сервера просто не будет возможности законно распознать этот идентификатор пользователя Б. запрос ничем не отличается от запросов пользователя А, и поэтому у сервера нет причин отклонять какой-либо запрос. Даже если бы мы перечислили сеансы, которые уже были активны на сервере, и попытались увидеть, обращается ли кто-то к уже активному сеансу, как мы можем определить, что к сеансу незаконно обращается другой пользователь, а не тот же пользователь? который уже вошел в систему с идентификатором сеанса, но просто пытается сделать с его помощью еще один запрос (т. е. перейти на другую веб-страницу). Мы не можем. Проверяете пользовательский агент? Его можно подделать, но, тем не менее, он хорош в качестве меры глубокоэшелонированной защиты. IP-адрес? Может измениться по законным причинам - но вместо того, чтобы вообще не проверять IP-адрес, я предлагаю проверить что-то вроде первых двух октетов IP, поскольку даже пользователь в сети с тарифным планом передачи данных, у которого постоянно меняется IP-адрес по вполне законным причинам обычно меняются только два последних октета их IP-адреса.

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

Подробнее здесь: https://stackoverflow.com/questions/122 ... -hijacking
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»