Показать сообщение отдельно

Авторизация на Php и защита сессий
  #1  
Старый 11.11.2006, 16:09
Mirovan
Познающий
Регистрация: 10.04.2005
Сообщений: 49
С нами: 11096622

Репутация: 12
По умолчанию Авторизация на Php и защита сессий

Есть некий скрипт, с помощью которого юзер авторизуется на сайте. После этого он должен получить доступ к персональным данным.

В начале я использовал сессии, но тестирую обнаружил что без труда можно подделать сессию. Как избежать этой ситуации ?


Для первоначальной защиты использую:

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']

КАк все таки быть, как должно выглядеть проверка на юзера?
 
Ответить с цитированием