Управление сессиями в пропиораторном веб-сервере - PullRequest
0 голосов
/ 13 декабря 2011

Мне было поручено попытаться устранить проблему с управлением сеансами на веб-сервере. Код написан на языке c и довольно старый. Сеансы ограничены созданием папки для нового сеанса, и сверху запускается небольшой скрипт php, который проверяет, что SID действителен для вошедшего в систему пользователя.

Однако, как работает программа, SID хранится в URL! поэтому любые копии копий приводят к перехвату сессии. Теперь мне сказали, что невозможно изменить тот факт, что SID хранится в URL. Использование файлов cookie невозможно, поскольку некоторые клиенты имеют высокие настройки безопасности в своих браузерах, и это также нельзя изменить. Единственное, о чем я могу думать, это перезапись URL-адреса, сохраняющая SID в скрытом поле, но я все еще жду информацию от моего менеджера, я не думаю, что это будет возможно, так как HTML-файлы предварительно написаны, и я не думаю, что к ним можно добавить скрытые поля, может быть, это может быть сделано на лету серверной программой, я не уверен. И моей последней идеей было использовать токены или просто начать новый сеанс, если найден другой IP-адрес или строка User-Agent, даже если у него есть действительный SID.

Я не очень много знаю о веб-безопасности. Я учусь в университете и в основном на программировании на C, но мне дали эту задачу как небольшой побочный проект, с которым я хотел бы попытаться что-то сделать.

У кого-нибудь из вас есть указатели? Я знаю, что я был расплывчатым, и мне не разрешают отправлять любой код :( извините Спасибо за помощь заранее.

1 Ответ

0 голосов
/ 13 декабря 2011

Даже с уже существующими менеджерами сеансов единственный способ избежать перехвата сеансов - это также проверить по IP-адресу клиента и, по желанию, по строке пользовательского агента. Любые другие предложения могут быть сделаны просто для неясности, но не окажут никакого влияния, если кто-то решит попробовать взломать ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...