[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дополнительная защита сайта.
Error
Приветы. Надеюсь на вашу помощь. Решил реализовать защиту сайта от краж сессий. Работает она так. После авторизации пользователя, с помощью функции mt_rand генерируем случайное число,затем сохраняем его в базу данных. Передаем методом гет по каждой ссылке.При каждом новом переходе на страницу,проверяем чтоб это число присутствовало,смотрим в базу,если число сходится с полученным из гет запроса,то пользователь свой человек,если это так,тогда генерируем новое число и меняем в базе старое на новое. И так далее,от страницы к странице.Всё отлично работает,но есть один минус,при обновлении страницы,не получая нового числа,получаем ошибку. Как правильно этого избежать?



Спустя 49 минут, 4 секунды (8.08.2009 - 10:43) jetistyum написал(а):
бгг, ты считаешь что эту защиту сложно будет обойти?smile.gif

Спустя 1 час, 58 минут, 59 секунд (8.08.2009 - 12:42) Error написал(а):
Это защита от кражи сессии,имеются и другие. Тоесть,если человек,даже с подобным ай пи и по угнанной сессии,попытается войти,то выйдет ошибка. Ибо число будет пустое,если же подставит вместе с числом,то это ничего не даст,потому как число мы получаем при авторизации пользователя. Нужно просто реализовать такой вариант. "ЕСЛИ,СТРАНИЦА НА КОТОРОЙ НАХОДИТСЯ ПОЛЬЗОВАТЕЛЬ,ОСТАЛАСЬ ПРЕЖНЕЙ,ТО ОСТАВЛЯЕМ КАК ЕСТЬ,ИНАЧЕ МЕНЯЕТСЯ ЧИСЛО И Т.Д." Вот этот момент как реализовать?smile.gif

Спустя 1 час, 46 минут, 52 секунды (8.08.2009 - 14:28) FatCat написал(а):
Зачем изобретать велосипед? Возьмите любой движок форума, и посмотрите, как это сделано.
Логика довольно проста: действительно, случайное значение (идентификатор сессии) создается при заходе на сайт и сохраняется в базе, при переходе на страницы сверяется. У клиента пишется в куки, и лишь если куки запрещены - в адресную строку параметром.
И две функции: одна создает сессии, вторая апдейтит.

При любом запросе страницы выполняется функция апдейт сессии. Если заход первый, функция, не найдя в базе такой идентификатор, или если идентификатор пустой, передает функции криэйт.
При переходе на страницы и при обновлении страниц работает только апдейт, сессия продолжается.

Конечно же, каждый раз при апдейте сохраняется time() события, чтобы по истечении времени старые сессии можно было удалить из базы.

Спустя 3 часа, 51 минута, 8 секунд (8.08.2009 - 18:20) kirik написал(а):
Если сайт действительно стоит защищать от краж сессий, то почему бы просто не воспользоваться SSL (https)?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.