Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2009, 17:00   #21
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Если куки нет или они пустые, или не соответствуют хешу в базе - то у пользователя нужно просить логин/пароль.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 14.04.2009, 17:41   #22
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

А нельзя через сессии делать. Не использовать вообще куки. При правильной авторизации в переменные сессии засунуть логин и md5(пароль). Если эти переменные в сессии пустые форма авторизации, если нет сверять с базой(если несколько админов), если не совпало форма авторизации.
Какие недостатки у этого способа?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.

Последний раз редактировалось Deight; 14.04.2009 в 17:51.
Deight вне форума Ответить с цитированием
Старый 14.04.2009, 17:50   #23
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Вот если я нажму на логаут, то должны:
1) Удалится кука
2) Очиститься хэш
3) Записанное время в БД стерется

Если я выполню пункт 2, то получится, что у хэша будет пустое значение, равно как и удалённой куки. А это значит, что зайти можно и без куки.
Просто у меня такой скрипт: если логин и пароль верны, но нету куки, то он её создаст и запишет нужные значения в БД.
Если же у куки не такое значение или же пустое, как у хэша в БД, то он напишет: Доступ запрещён. Если и хэш будет очищаться после выхода, то тогда его пустое значение будет равно пустому значению куки, что позволяет любому зайти и напакостить.
Может, лучше не стирать хэш при логауте, а только устанавливать время БД на 0?
SwiP вне форума Ответить с цитированием
Старый 14.04.2009, 19:46   #24
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Deight

Можно. При варианте с куками, они хранятся только у пользователя. Сессии же хранятся и у пользователя в куках и у хостера в папочке /tmp. Из двух зол я предпочитаю меньшее..

SwiP
Проверять на пустоту данные никогда не пробовал? Как ты вообще определяешь что у пользователя куки есть? Только не говори, что ты не проверяешь, а напрямую запрос в базу кидаешь.. ))))
Пустые куки = запросить логин/пароль. Там даже хеш не нужно в БД запрашивать.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 14.04.2009, 21:35   #25
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

#24 не знаю как у вас, у меня при использовании сессий в куках только PHPSESSID равное коду сессии. А у вас что по другому, может я просто чего-то не знаю.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.

Последний раз редактировалось Deight; 14.04.2009 в 21:39.
Deight вне форума Ответить с цитированием
Старый 14.04.2009, 22:01   #26
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Если без авторизации кто-то зашёл, то я сверяю значение его куков и хэша из БД. Если их нету или они неверные, то шлю его подальше.
Если пользователь логинится, и если не обнаруживаю у него кукей, то генерирую их, а заодно добавляю хэш в БД.
Если пользователь логинится, и верные куки уже есть, то ничего не генерируется и не перезаписывается, а идёт переход на админку.
После этого происходит сверение хэша в куки и в БД, если ок, то усё ок, если нет, то гуляй вася - иди возвращайся и вводи данные заного.
P.S У меня 2 страницы: для авторизации и самой админки.

Последний раз редактировалось SwiP; 14.04.2009 в 22:03.
SwiP вне форума Ответить с цитированием
Старый 15.04.2009, 02:24   #27
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Deight
Советуешь ему сначала научиться водить на автоматической коробке, а потом переходить на ручную? Ну возможно так лучше.
З.Ы. Посмотри что у него в куках хранится.. ничем не напоминает PHPSESSID? А теперь заметь, что при использовании куков в /tmp ничего не сохраняется. При использовании сессии - создаётся временный файл сессии. На шарном хостинге это не совсем безопасно. Читай выше про меньшее зло. Считай что это самостоятельная перегрузка сессии с использованием MySQL.

SwiP
Ых, тяжко тебе...
Сверение хеша в куки и в БД происходит в третьей строке, а НЕ ПОСЛЕ перехода на админку. Вот когда ты определяешь верные у него куки или нет.

В идеале у тебя должна быть одна страница. Блок авторизации может быть в отдельном подключаемом PHP файле.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 15.04.2009, 04:06   #28
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

#27 я же ведь и спрашивал, а не советовал, по тому что не знаю всех нюансов. На счет коробки это хорошо подмеченно, но автомат не значит хуже... Я не знаю что значит шарный хост, что на таких хостах пользователь сможет поменять содержимое файлов хранящихся в папке tmp??? Если нет то что в них плохова?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.

Последний раз редактировалось Deight; 15.04.2009 в 04:09.
Deight вне форума Ответить с цитированием
Старый 15.04.2009, 23:57   #29
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Код:
Сверение хеша в куки и в БД происходит в третьей строке, а НЕ ПОСЛЕ перехода на админку
То есть ещё до генерации куков? Но тогда, будет всегда выдаваться Unauthorized, т.к у нас куки пустые, а хэш в БД - нет.

У меня ща пока одна проблемка осталась, когда куки уже умерли, и кто-то хочет зайти, то сразу же выдаётся ошибка, типа неавторизирован, стоит только обновить страницу, и я в админке. Хотя скрипт проверки одинаковости значения куки и хэша БД, стоит буквально после скрипта проверки имени/пароля и генерации кукей
SwiP вне форума Ответить с цитированием
Старый 28.04.2009, 20:25   #30
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Есть ещё одна проблема, с файрфоксом: при завершении сеанса, он пишет, что вроде бы и завершил, но куки не удаляет. (то есть можно нажать на кнопку назад и продолжить работу). В ИЕ6 такого нету, там всё нормально..
Организую выход так:
Код:
if (isset ($_POST['dzestcepumus'])) { setcookie ("cepumi","",time()+3); setcookie ("adminname","",time()+3);
					$out_hash=mysql_query ("update admmenu set hashtime=0 where id_adm=1");
					if ($out_hash) {
							echo ("<center><h1>Всего хорошего ;)</h1></center>");
						       } else echo mysql_error();
				    }
Может, для мозиллы нужно что-то другое?
SwiP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка правильности ввода. 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