Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: класс пользователя и авторизация

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
foozzi
Отправлено: 15 Мая, 2013 - 20:54:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




Написал класс для авторизации/аунтификации пользователя и определения его.
Как я понял он уязвим и авторизоватся может гость по кукам
класс - https://github[dot]com/foozzi/typica[dot][dot][dot]ass/lib[dot]User.php


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
caballero
Отправлено: 15 Мая, 2013 - 21:03:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а как уязвимость связана с тем класс это и не класс?
и чем смысл класса авторизации? Что он инкапсулирует этот класс?
или просто хочется выглядеть крутым - я тоже умею класс написать


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
foozzi
Отправлено: 15 Мая, 2013 - 21:23:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




caballero пишет:
а как уязвимость связана с тем класс это и не класс?
и чем смысл класса авторизации? Что он инкапсулирует этот класс?
или просто хочется выглядеть крутым - я тоже умею класс написать

В данный момент я не прошу поливать меня дерьмом, я прошу подсказать в чем ошибка


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
LifePlay
Отправлено: 16 Мая, 2013 - 08:43:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


Помог: 0 раз(а)




Я бы не рекомендовал делать так:
PHP:
скопировать код в буфер обмена
  1. $Check_cookie = db::normalizeQuery("SELECT * FROM users WHERE hash_user = '%s' AND ip_user = '%s'", $_COOKIE['hash'], $_COOKIE['ip']);
Так как $_COOKIE можно подделать и в итоге получить доступ по краденым кукам

Должна хотя бы быть функция проверки соответствия Хеша, браузеру которому этот Хеш установлен. Но информация о браузере должна хранится на сервере. Например
PHP:
скопировать код в буфер обмена
  1. $Check_cookie = db::normalizeQuery("SELECT * FROM users WHERE hash_user = '%s' AND ip_user = '%s'", $_COOKIE['hash'], $_COOKIE['ip']);
  2.  
  3. if($Check_cookie && $Check_cookie['user_agent'] == $_SERVER['HTTP_USER_AGENT'])
  4.         {
  5.         //...

(Отредактировано автором: 16 Мая, 2013 - 09:08:08)

 
 Top
foozzi
Отправлено: 16 Мая, 2013 - 22:57:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




LifePlay пишет:
Я бы не рекомендовал делать так:
PHP:
скопировать код в буфер обмена
  1. $Check_cookie = db::normalizeQuery("SELECT * FROM users WHERE hash_user = '%s' AND ip_user = '%s'", $_COOKIE['hash'], $_COOKIE['ip']);
Так как $_COOKIE можно подделать и в итоге получить доступ по краденым кукам

Должна хотя бы быть функция проверки соответствия Хеша, браузеру которому этот Хеш установлен. Но информация о браузере должна хранится на сервере. Например
PHP:
скопировать код в буфер обмена
  1. $Check_cookie = db::normalizeQuery("SELECT * FROM users WHERE hash_user = '%s' AND ip_user = '%s'", $_COOKIE['hash'], $_COOKIE['ip']);
  2.  
  3. if($Check_cookie && $Check_cookie['user_agent'] == $_SERVER['HTTP_USER_AGENT'])
  4.         {
  5.         //...


допилил проверку по юзер-агенту


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
LIME
Отправлено: 16 Мая, 2013 - 23:02:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




и это легко подделать
проверяй по ip
 
 Top
foozzi
Отправлено: 16 Мая, 2013 - 23:25:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




LIME пишет:
и это легко подделать
проверяй по ip

дык я и проверяю по ip
(Добавление)
LIME пишет:
и это легко подделать
проверяй по ip

а как подделать то, если сессии


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
esterio
Отправлено: 16 Мая, 2013 - 23:34:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




user agent - всего лишь заголовок и к сессиям отношения не имеет

(Отредактировано автором: 16 Мая, 2013 - 23:38:21)

 
 Top
foozzi
Отправлено: 16 Мая, 2013 - 23:38:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




esterio пишет:
user agent - всего лишь заголовок и к сессиям отношения не имеет

добавил проверку по ip


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
LifePlay
Отправлено: 17 Мая, 2013 - 15:08:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


Помог: 0 раз(а)




LIME пишет:
и это легко подделать
проверяй по ip

IP может быть динамичным как тогда быть?
 
 Top
LIME
Отправлено: 17 Мая, 2013 - 15:10:20
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




LifePlay после того как ты авторизовался он у тебя прыгать не будет))
(Добавление)
....динамичный IP)))....
 
 Top
foozzi
Отправлено: 17 Мая, 2013 - 16:25:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




LIME пишет:
LifePlay после того как ты авторизовался он у тебя прыгать не будет))
(Добавление)
....динамичный IP)))....

Еще вопросик, не могу понять, почему этот класс все же не соответствует ООП?


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
esterio
Отправлено: 17 Мая, 2013 - 16:29:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. public static function Check_Access()
  2.     {
  3.         if(!isset($_SESSION['user_id']) && !isset($_SESSION['raw']))
  4.         {
  5.             show404('Ошибка доступа', 'Авторизуйтесь');
  6.         }
  7.     }


http://ru[dot]wikipedia[dot]org/wiki/%D0[dot][dot][dot]D%D0%B8%D0%B5%29

И что мне придеться самому писать show404? а если мне вместо 'Авторизуйтесь' нужно другое сообщение вывести?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. public static function logout()
  2.     {
  3.         self::$user = null;
  4.  
  5.         self::destroy_session_cookie();
  6.  
  7.         header("Location: /main");
  8.        
  9.         exit;
  10.     }


не нашел метод
и я главной в большинстве случаев делаю / вместо /main
в общем начали в павильном направлении, но ен обижайтесь если не дотягиваете
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Мая, 2013 - 21:03:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




esterio пишет:
в общем начали в павильном направлении
После долгих растолковываний по аське.
Я рад что он прозрел.. Хотя он поболее рад, конечно же.. Закатив глазки
 
 Top
foozzi
Отправлено: 17 Мая, 2013 - 22:36:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011  
Откуда: rm -rf /


Помог: 0 раз(а)




esterio пишет:
PHP:
скопировать код в буфер обмена
  1. public static function Check_Access()
  2.     {
  3.         if(!isset($_SESSION['user_id']) && !isset($_SESSION['raw']))
  4.         {
  5.             show404('Ошибка доступа', 'Авторизуйтесь');
  6.         }
  7.     }


http://ru[dot]wikipedia[dot]org/wiki/%D0[dot][dot][dot]D%D0%B8%D0%B5%29

И что мне придеться самому писать show404? а если мне вместо 'Авторизуйтесь' нужно другое сообщение вывести?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. public static function logout()
  2.     {
  3.         self::$user = null;
  4.  
  5.         self::destroy_session_cookie();
  6.  
  7.         header("Location: /main");
  8.        
  9.         exit;
  10.     }


не нашел метод

и я главной в большинстве случаев делаю / вместо /main
в общем начали в павильном направлении, но ен обижайтесь если не дотягиваете

Немного не понял по поводу метода Check_Access(), у меня файл с ф-ми отдельным файлом.
А метод destroy_session_cookie() вот же он https://github[dot]com/foozzi/typica[dot][dot][dot]ib[dot]User.php#L189 (189 строка)


-----
90% ошибок находятся в полуметре от монитора...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB