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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: безопасные куки
flisk
Отправлено: 22 Ноября, 2012 - 15:17:01
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011  


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




Вопрос мб тупой, но не могу сам найти решение. Встал вопрос о создании примитивной системы авторизации, т.е. логин пароль и так далее. Тут все ясно, но неясен момент - что именно хранить в куках авторизованного юзера? Т.е. как доказать, что он это он, а не кто-то левый?

Просто хранить его Id, имя или какое-то значение вида "good" отпадает, сами понимаете почему. Нужно что-то уникальное, чтобы не могли подделать и войти под другим. Хранить пароль опасно, мд5 пароля - вариант, но выходит придется при каждом обращении к странице посылать запрос в базу, сверять пароль, что лишняя нагрузка на бд. Генерить на основе ника хэш - опять же, сорцы открыты, кто-то посмотрит алгос и войдет под другим ником. Не вариант.

В общем, не знаю как сделать, подскажите,может у вас будут какие-то идеи.
p.s. сессии не вариант, нужны куки.
 
 Top
avtor.fox
Отправлено: 22 Ноября, 2012 - 15:19:46
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




flisk token?
(Добавление)
flisk
Слишком много слов, а подумать о том что при любом раскладе (исключая сессии) нужно будет обращаться к базе (файловой системе) никак?

И к примеру храня хэш пароля в кукисах, увести его не составит проблемы. Это при том раскладе что нельзя нагружать сервер и делать дополнительные проверки.

Кто Вас так сессиями напугал? ВУЗ?
 
 Top
Мелкий Супермодератор
Отправлено: 22 Ноября, 2012 - 15:50:45
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




avtor.fox пишет:
при любом раскладе (исключая сессии) нужно будет обращаться к базе (файловой системе) никак?

Включая сессии. Они же тоже не в вакууме находятся?

Можете использовать mcrypt или другую библиотеку для обратимого шифрования.


-----
PostgreSQL DBA
 
 Top
avtor.fox
Отправлено: 22 Ноября, 2012 - 16:00:32
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Мелкий
"при любом раскладе (исключая сессии)" - это не говоря о сессиях и работе с ними.

Может быть неточно выразился просто Закатив глазки
 
 Top
flisk
Отправлено: 22 Ноября, 2012 - 16:58:05
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011  


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




Мелкий в смысле? А что именно шифровать?

avtor.fox, сессии мне не подходят, т.к. мне надо делать, чтобы (например) через 20 минут юзер разлогинился. Чтобы за его компьютером никто левый не мог войти на тот же сайт. В случае с куками это решается параметром время (хотя его можно подделать, но все же..), а в случае с сессиями - нужно лезть в php.ini , что не есть хорошо.

Да и работа с фс обычно быстрее работы с бд, как мне кажется.
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Ноября, 2012 - 17:02:12
Post Id



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


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


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




flisk пишет:
а в случае с сессиями - нужно лезть в php.ini
Да?
PHP:
скопировать код в буфер обмена
  1. if (!isset($_SESSION['member']) or ($_SESSION['member'] + 1200) < time()) {
  2.   echo 'Ты гость';
  3. } else {
  4.   $_SESSION['member'] = time();
  5.   echo 'Пиривет дарагой, двацать минут не прошло, а ты уже опять тут';
  6. }
 
 Top
flisk
Отправлено: 22 Ноября, 2012 - 17:38:10
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011  


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




DeepVarvar спасибо, это то, что надо!
 
 Top
Мелкий Супермодератор
Отправлено: 22 Ноября, 2012 - 18:02:14
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




flisk пишет:
т.к. мне надо делать, чтобы (например) через 20 минут юзер разлогинился.

http://php.net/manual/en/session...onfiguration.php
Напротив session.gc_maxlifetime видим PHP_INI_ALL.
Причина не засчитана, php.ini изменять не нужно.

flisk пишет:
Чтобы за его компьютером никто левый не мог войти на тот же сайт.

И как вы это собираетесь решать куками? Сессия со стороны браузера - кука и есть.
Хинт: session_set_cookie_params


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB