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 :: Авторизация [2]

 PHP.SU

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


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

> Описание: Безопастность
vitaliy_mad
Отправлено: 01 Ноября, 2008 - 00:55:54
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




ALEN, совершено верно... вот как раз отсюда и следует, что к базе надо обращаться при каждом обновлении или перходе на другую страничку...
(Добавление)
к примеру защел я на сайт и передам следующую сроку: "9c844ab169d0639108c2b9977f8ad443"... вопрос как без обращения к базе узнать... соответсвует ли данная строка вашей формуле?

PS: или я торможу или мы на разных языках говорим.... хотелось бы выяснить окончательно....
 
 Top
ALEN
Отправлено: 01 Ноября, 2008 - 01:14:20
Post Id



Участник


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


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




vitaliy_mad
1) Что Вас пугает в БД???
2) Без БД не никакого смысла, вообще парится с этой всей фигней. На сайте еще миллион дыр где можно будет просто лезть и брать все безнаказуемо.

Все это как пороль и логин: просто передавая пароль и логин - мы просто отдаем доступ, а мой описаный случай пологается только на везенеи делитанта в получениии доступа.

Чтоб проверить логин и пароль, Вам необходимо так же обращатся авторизацией. С помощью данного метода мы просто авторизацию проводим автоматически. А не обходим ее.
 
 Top
vitaliy_mad
Отправлено: 01 Ноября, 2008 - 01:16:04
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




ALEN я как раз и пытаюсь всех вышеотписывающихся,которые утверждали что можно обойтисб без БД, убедить в необходимости онной.
 
 Top
ALEN
Отправлено: 01 Ноября, 2008 - 01:24:45
Post Id



Участник


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


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




vitaliy_mad
Наконец я понял, что ты удостоверился в своих утверждениях, на мои доводах ))))
 
 Top
vitaliy_mad
Отправлено: 01 Ноября, 2008 - 01:25:58
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




ALEN, главное что б остальные тоже в этом убедились
 
 Top
IOpeH
Отправлено: 01 Ноября, 2008 - 03:18:03
Post Id



Частый гость


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


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




а чем плох такой вариант?

- стартуем сессию
- если пользователь выходит, трем все переменные сессии описанные ниже
- если пользователь пытается войти и логин и пасс соответствуюд данным из базы записываем в сессию переменную access равную true (или любую другую с другим значение) + другие данные о пользователе (браузер, ОС и тд) в соответствующие переменные, иначе ничего не делаем или пишем что не верный логин или пасс
- проверяем access==true + другие данные пользователя записанные при верном входе, а дальше от результата этой проверки геним страницу

и надежно (вроде как) и сверяться с базой каждый раз не надо
 
 Top
vitaliy_mad
Отправлено: 01 Ноября, 2008 - 08:39:06
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




IOpeH когла логин и пароль уже введен и пользователь просто ходит по сайту. без смверки с БД нет возможности выяснить подставные это данные в сессии или реальные
 
 Top
ALEN
Отправлено: 01 Ноября, 2008 - 09:01:49
Post Id



Участник


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


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




IOpeH
Другие записаные данные не имеют тогда смысла, я в переменную в куке напишу значение true и буду авторизовыватся.

А если передавать в куке логин и пароль, то вообще нет смысла ничего проверять. Я получил значение куки, прочел пароль и логин и спокойно вошел!
 
 Top
IOpeH
Отправлено: 01 Ноября, 2008 - 11:31:50
Post Id



Частый гость


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


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




я то предлагаю записать не в куки а в сессию
 
 Top
Champion Супермодератор
Отправлено: 01 Ноября, 2008 - 11:51:44
Post Id



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


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


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




vitaliy_mad пишет:
valenok пишет:
какой мусор ? Я же говорю - в зашифрованном виде.
Вряд ли ты в сроку вида
6ehd4xhtu09euths94txbksa,./=aeuhk9a75skxaxoejae920500tehuxkjsaduhnd***aeudynt
Впишешь много мусора чтоб тебя впустили.

А куку устанавливать после авторизации

ты мне объясни каким образоб скрипт бует знать что полученные данные с куков являются именно зашифрованным логином СУЩЕСТВУЮЩЕГО пользователя, если не делать сверку с БД???


Пользователь должен ОДИН раз авторизоваться (здесь БД), а при переходе между страницам сайта уже идентифицироваться по сессии или кукам. Иначе каждый раз БД мучать при каждом переходе каждого пользователя
(Добавление)
Точнее, возможно, к БД прийдется все равно обращаться, но по другому поводу. Например, вывод страницы в соответствии с настройками пользователя... Тогда можно и пароль заодно сверить
 
 Top
ALEN
Отправлено: 01 Ноября, 2008 - 12:45:07
Post Id



Участник


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


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




IOpeH
Данные сессии хранятся на сервере, я не проверял но думаю разработчики подсуетили, чтоб этого нельзя было подстроить, так ужж легко => смысла парится нет со всякими данными.
 
 Top
IOpeH
Отправлено: 01 Ноября, 2008 - 12:58:05
Post Id



Частый гость


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


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




ALEN пишет:
Данные сессии хранятся на сервере


)))) это вы мне рассказываете )))))


ps и нет никакого смысла каждый раз с базой сверять
 
 Top
E-Pro
Отправлено: 01 Ноября, 2008 - 14:37:08
Post Id



Частый гость


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


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




Раписывать через классы и т п не буду.
Например сделать так:
index.php

functions.php
PHP:
скопировать код в буфер обмена
  1. function auth(){
  2. if(!empty($_SESSION['site_cookie'])){
  3. //вывод формы
  4. }else{
  5. if(/*проверка на существования сесии или куки*/){
  6. // получение данных сравнение
  7. //если кука верна с пользователем, то создаем сесию
  8. //кука не равно очищаем сесию, вывод на форму
  9. //больше 3-х раз ошиблись бан на 15 минут
  10. }else{
  11. //получаем пароль пользователя и его личный код
  12. $code=$db['code'];
  13. $pass=md5(base64_encode($db['password']+$code));
  14. //заносим куку и сессию
  15. $rand = base64_encode(session_id()+($code+$pass));
  16. setcookie('site_cookie',''.$rand.'');
  17. $_SESSION['id'] = md5($pass+$code);
  18. }
  19. }
  20. }
  21.  


Функция переход, если у Вас создана модульная система перехода, то фиксация страницы в бд, в таблице session. Заносим время входа единственное и дата окончания сессии (при каждом переходе она обновляется, но если беспокоится, на то что грузить бд будет, интервал можно сделать окончания обновления, 1 раз в три минуты), далее каждый раз заносить рандомный код, который можно занести в куки или сессию, если не будет совпадать, то отключение, заносить ещё браузер можно(бд and session or cookie).
Занести ещё id сесии для верности.
Выше в коде авторизации, код перехода для куки или сессии не прописан.
Т.е. в конечном итоге, получается не маленький код на проверку, но в целом мне кажется, такой способ впринципе ничего.

(Отредактировано автором: 01 Ноября, 2008 - 14:43:34)

 
 Top
valenok
Отправлено: 01 Ноября, 2008 - 16:10:41
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




псевдокод для особой наглядности:

1. если установлена сессия - пользователь авторизован
2. иначе
2.1 если НЕ установлена кука "суперпупер" - пользователь не авторизоавен
2.2 иначе: расшифровываем содержимое куки, получаем из этого содержимого логин и пароль, записываем в сессию данные. - пользователь авторизован


-----
Truly yours, Sasha.
 
My status
 Top
E-Pro
Отправлено: 01 Ноября, 2008 - 16:25:19
Post Id



Частый гость


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


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




valenok пишет:
1. если установлена сессия - пользователь авторизован
2. иначе
2.1 если НЕ установлена кука "суперпупер" - пользователь не авторизоавен
2.2 иначе: расшифровываем содержимое куки, получаем из этого содержимого логин и пароль, записываем в сессию данные. - пользователь авторизован


1. Это понятно
2. Иначе
2.1 Это и так понятно.
2.2 Можно сделать куку такую, какая работает на один вход, т.е. вписать туда ip а потом вынимать, и сравнивать. Естественно сделав обход прокси.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB