ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 12
Отправить сообщение для Mirovan с помощью ICQ
По умолчанию Авторизация на 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']

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

  #2  
Старый 11.11.2006, 16:11
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Привязывай сессию к айпи.
Юзай тег [php] в сообщениях.
$HTTP_REFERER надо брать так: $_SERVER['HTTP_REFERER']
 
Ответить с цитированием

  #3  
Старый 11.11.2006, 16:16
Mirovan
Познающий
Регистрация: 10.04.2005
Сообщений: 49
Провел на форуме:
108176

Репутация: 12
Отправить сообщение для Mirovan с помощью ICQ
По умолчанию

Есть конечно выриант проверки соответствия какой нить случайной переменной сессии Sid присвоенной для определённого логина, но опять же вопрос где хранить её? если в базе, то как её оттуда удалить , по истечению какого времени
 
Ответить с цитированием

  #4  
Старый 11.11.2006, 16:31
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

Юзай кукисы и все =)
 
Ответить с цитированием

  #5  
Старый 11.11.2006, 16:52
Mirovan
Познающий
Регистрация: 10.04.2005
Сообщений: 49
Провел на форуме:
108176

Репутация: 12
Отправить сообщение для Mirovan с помощью ICQ
По умолчанию

Отыскал хорошую статейку по сессиями др. - http://php.spb.ru/php/session.html

Не найдя оптимального решения, пришлось юзать Кукисы (
 
Ответить с цитированием

  #6  
Старый 11.11.2006, 17:15
Pochka
Познающий
Регистрация: 26.11.2005
Сообщений: 32
Провел на форуме:
47872

Репутация: 20
По умолчанию

Не совсем ясно, что значит подделать сессию. Подделать сессию нельзя, все данные сессии хранятся на сервере. Можно как-то угадать (хм, сомнтиельно) или угнать номер сессии и использовать ее, но это представляет угрозу только в случае если сессия не привязана к IP или если привязана, но оба пользователя находятся за одним шлюзом, т.е. имеют одинаковый внешний IP адрес

Цитата:
Сессию можно подделать прийдя с другого сайта вместе с переменной $_SESSION['login']
Не понял смысл вот этой фразы.

С какого сайта к вам зашли Вы не сможете проверить 100%но никаким способом. Вы можете проверять referer или насовать каких-то умных javascript'ов против подделки http запроса, однако строить на этом какую-либо защиту бессмысленно. Хотя я даже не понял защиту чего именно Вы хотите организовать проверкой реферера
 
Ответить с цитированием

  #7  
Старый 04.09.2007, 17:13
Mirovan
Познающий
Регистрация: 10.04.2005
Сообщений: 49
Провел на форуме:
108176

Репутация: 12
Отправить сообщение для Mirovan с помощью ICQ
По умолчанию

Хех, прочитал что писал 2 года назад, ну я дал

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ