|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.04.2009, 17:00 | #21 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Если куки нет или они пустые, или не соответствуют хешу в базе - то у пользователя нужно просить логин/пароль.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
14.04.2009, 17:41 | #22 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
А нельзя через сессии делать. Не использовать вообще куки. При правильной авторизации в переменные сессии засунуть логин и md5(пароль). Если эти переменные в сессии пустые форма авторизации, если нет сверять с базой(если несколько админов), если не совпало форма авторизации.
Какие недостатки у этого способа?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Последний раз редактировалось Deight; 14.04.2009 в 17:51. |
14.04.2009, 17:50 | #23 |
Форумчанин
Регистрация: 18.03.2009
Сообщений: 101
|
Вот если я нажму на логаут, то должны:
1) Удалится кука 2) Очиститься хэш 3) Записанное время в БД стерется Если я выполню пункт 2, то получится, что у хэша будет пустое значение, равно как и удалённой куки. А это значит, что зайти можно и без куки. Просто у меня такой скрипт: если логин и пароль верны, но нету куки, то он её создаст и запишет нужные значения в БД. Если же у куки не такое значение или же пустое, как у хэша в БД, то он напишет: Доступ запрещён. Если и хэш будет очищаться после выхода, то тогда его пустое значение будет равно пустому значению куки, что позволяет любому зайти и напакостить. Может, лучше не стирать хэш при логауте, а только устанавливать время БД на 0? |
14.04.2009, 19:46 | #24 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Deight
Можно. При варианте с куками, они хранятся только у пользователя. Сессии же хранятся и у пользователя в куках и у хостера в папочке /tmp. Из двух зол я предпочитаю меньшее.. SwiP Проверять на пустоту данные никогда не пробовал? Как ты вообще определяешь что у пользователя куки есть? Только не говори, что ты не проверяешь, а напрямую запрос в базу кидаешь.. )))) Пустые куки = запросить логин/пароль. Там даже хеш не нужно в БД запрашивать.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
14.04.2009, 21:35 | #25 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
#24 не знаю как у вас, у меня при использовании сессий в куках только PHPSESSID равное коду сессии. А у вас что по другому, может я просто чего-то не знаю.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Последний раз редактировалось Deight; 14.04.2009 в 21:39. |
14.04.2009, 22:01 | #26 |
Форумчанин
Регистрация: 18.03.2009
Сообщений: 101
|
Если без авторизации кто-то зашёл, то я сверяю значение его куков и хэша из БД. Если их нету или они неверные, то шлю его подальше.
Если пользователь логинится, и если не обнаруживаю у него кукей, то генерирую их, а заодно добавляю хэш в БД. Если пользователь логинится, и верные куки уже есть, то ничего не генерируется и не перезаписывается, а идёт переход на админку. После этого происходит сверение хэша в куки и в БД, если ок, то усё ок, если нет, то гуляй вася - иди возвращайся и вводи данные заного. P.S У меня 2 страницы: для авторизации и самой админки. Последний раз редактировалось SwiP; 14.04.2009 в 22:03. |
15.04.2009, 02:24 | #27 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Deight
Советуешь ему сначала научиться водить на автоматической коробке, а потом переходить на ручную? Ну возможно так лучше. З.Ы. Посмотри что у него в куках хранится.. ничем не напоминает PHPSESSID? А теперь заметь, что при использовании куков в /tmp ничего не сохраняется. При использовании сессии - создаётся временный файл сессии. На шарном хостинге это не совсем безопасно. Читай выше про меньшее зло. Считай что это самостоятельная перегрузка сессии с использованием MySQL. SwiP Ых, тяжко тебе... Сверение хеша в куки и в БД происходит в третьей строке, а НЕ ПОСЛЕ перехода на админку. Вот когда ты определяешь верные у него куки или нет. В идеале у тебя должна быть одна страница. Блок авторизации может быть в отдельном подключаемом PHP файле.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
15.04.2009, 04:06 | #28 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
#27 я же ведь и спрашивал, а не советовал, по тому что не знаю всех нюансов. На счет коробки это хорошо подмеченно, но автомат не значит хуже... Я не знаю что значит шарный хост, что на таких хостах пользователь сможет поменять содержимое файлов хранящихся в папке tmp??? Если нет то что в них плохова?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Последний раз редактировалось Deight; 15.04.2009 в 04:09. |
15.04.2009, 23:57 | #29 |
Форумчанин
Регистрация: 18.03.2009
Сообщений: 101
|
Код:
У меня ща пока одна проблемка осталась, когда куки уже умерли, и кто-то хочет зайти, то сразу же выдаётся ошибка, типа неавторизирован, стоит только обновить страницу, и я в админке. Хотя скрипт проверки одинаковости значения куки и хэша БД, стоит буквально после скрипта проверки имени/пароля и генерации кукей |
28.04.2009, 20:25 | #30 |
Форумчанин
Регистрация: 18.03.2009
Сообщений: 101
|
Есть ещё одна проблема, с файрфоксом: при завершении сеанса, он пишет, что вроде бы и завершил, но куки не удаляет. (то есть можно нажать на кнопку назад и продолжить работу). В ИЕ6 такого нету, там всё нормально..
Организую выход так: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка правильности ввода. | Whiplash | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 14.11.2008 18:00 |
Проверка правильности ввода символов | LLIypLLIyH | Помощь студентам | 7 | 22.07.2008 19:30 |
Проверка ввода | Panda | Помощь студентам | 2 | 08.07.2008 19:23 |
проверка ввода данных в форму | @Simpson | JavaScript, Ajax | 1 | 12.11.2007 02:17 |
Проверка ввода символов | Raz0r | Помощь студентам | 2 | 06.11.2007 14:16 |