Есть некий скрипт, с помощью которого юзер авторизуется на сайте. После этого он должен получить доступ к персональным данным. В начале я использовал сессии, но тестирую обнаружил что без труда можно подделать сессию. Как избежать этой ситуации ? Для первоначальной защиты использую: PHP: // если пользователь пришёл с любой страницы //нашего сайта, то он наш, иначе выдаем ему ошибку //$_SITE_PATCH - url сайта if(!eregi("^$_SITE_PATCH",$HTTP_REFERER)){ echo("Авторизация производится только со страницы <a href=\"index.php?show=enter\">".$_SITE_PATCH."index.php?show=enter</a>"); exit; } Тем не менее $HTTP_REFERER - формируется браузером. Поэтому защита здесь всего лишь мнимая. Каким способом проверять переходы пользователя по другим страницам сайта используя сессии, так чтобы это было безопасно? т.е. к примеру, я зарегистрировал сессию: PHP: session_start(); $_SESSION['login']="user1"; при переходе на другую страницу проверяю session_start(); if (empty($_SESSION['login'])) { exit; } else { //Доступ к персональным данным } Сессию можно подделать прийдя с другого сайта вместе с переменной $_SESSION['login'] КАк все таки быть, как должно выглядеть проверка на юзера?
Привязывай сессию к айпи. Юзай тег PHP: в сообщениях. $HTTP_REFERER надо брать так: $_SERVER['HTTP_REFERER']
Есть конечно выриант проверки соответствия какой нить случайной переменной сессии Sid присвоенной для определённого логина, но опять же вопрос где хранить её? если в базе, то как её оттуда удалить , по истечению какого времени
Отыскал хорошую статейку по сессиями др. - http://php.spb.ru/php/session.html Не найдя оптимального решения, пришлось юзать Кукисы (
Не совсем ясно, что значит подделать сессию. Подделать сессию нельзя, все данные сессии хранятся на сервере. Можно как-то угадать (хм, сомнтиельно) или угнать номер сессии и использовать ее, но это представляет угрозу только в случае если сессия не привязана к IP или если привязана, но оба пользователя находятся за одним шлюзом, т.е. имеют одинаковый внешний IP адрес Не понял смысл вот этой фразы. С какого сайта к вам зашли Вы не сможете проверить 100%но никаким способом. Вы можете проверять referer или насовать каких-то умных javascript'ов против подделки http запроса, однако строить на этом какую-либо защиту бессмысленно. Хотя я даже не понял защиту чего именно Вы хотите организовать проверкой реферера
Хех, прочитал что писал 2 года назад, ну я дал Аж смешно, подделать сессию, извините, что ламерил, хотя, все мы такие когда то были