Пример (теория) безопасной авторизации пользователей и администратора. Вопросы.

Rammstein

PHPClub::News
Andreika
Не, ну, допустим на функцию "Удалить весь сайт" ещё можно повесить такую лабуду.
Но опять же скажу, что у меня бывали случаи, когда письмо шло почти 6 часов (с забугорного сайта). Правда, с заведением почтового сервера на Р*К ( :) ) проблема почти решилась. Кстати, с этого форума иногда задержки на пару часов (уже на Р*К).
 

Гриша К.

Новичок
sage, мне кажется что в этот вариант слишком услажнен. Но возможно его можно применить при 3 (или 10) к примеру неудачных попытках, тогда будет например необходима эта процедура. Если вы сделаете что-то похожее, то напишите сюда пожалуйста, алгоритм, я почитаю, возможно и применю.


А у меня была такая идея:
При успешной регистрации пользователя, случайным образом генерируем пароль № 2 (как PUK код для сим карт на мобильных) состоящий из букв (6) и цифр (3-5), соответсвенно сохраняем в БД к примеру как password2, а пользователя уведомляем об этом и пересылаем этот код ему на e-mail.
К примеру при 10 неудачных попытках авторизации, требуем ввод этого кода.
Если к примеру пользователь забыл пароль, то при генерации нового пароля, генерируем и пароль № 2, и затем оптравляем все на e-mail. Спустя час после 10 неудачных попыток, ввод пароля № 2 не требуем.


Сам я такой вариант не использую, но задумался о нем когда не мог сделать код для вывода человекочитаемой надписи, сейчас использую код phpbb, с некоторыми изменениями.
+ Этого варианта, как я думаю, что если будут использоваться скрипты которые будут читать человекочитаемые надписи (ведь незря при их использовании рекомендуют чтобы цифры пересекались или были перечеркнуты линиями), то при таком варианте пароль не подобрать на 99%.
 

440hz

php.ru
Гриша К.
при проектах, требующих защищенности (делал сайт одному мобильному оператору внешний,внутренний) поступал так:

логин: /0-9a-z/i
пароль не мение 6 не повторяющихся символов.
обычная авторизация пары логин/пароль. в базе лежит md5($pass). из кук только сессия. 32 символа.

регистрация

при логине ухожу на https (сертификат официальный) и далее работаю там.

все.
 

Гриша К.

Новичок
440hz, спасибо за пример.

Я несколько неразобрался c: при логине ухожу на https (сертификат официальный) и далее работаю там.

Но я щас посижу подумаю.

-------------------------------------
У меня щас такая аутентификаци как я в этом топике описывал, и переменная сесси у меня содержит имя пользователя (логин), которая у меня является идентификатором пользователя (как вы мне до этого пример приводили), на нужных страницах я смотрю уровень доступа пользователя и соответсвенно вывожу данные.

Только я вот думаю, что когда авторизуется администратор, у пусть него будут права как у модератора (в большинстве случаев этого будет хватать), а чтобы получить администратору полные права нужно авторизовться второй раз:
вот в этот момент, я так понимаю, мне нужно будет уже создавать вторую переменную сенса, например $_SESSION['admin'].
 

440hz

php.ru
Гриша К.
Я несколько неразобрался c: при логине ухожу на https (сертификат официальный) и далее работаю там.
перехожу на защищенное соединение. все данные передаваемые по этому протоколу шифруются, что гарантирует от перехвата.
 

Гриша К.

Новичок
440hz, спасибо большое что разъясняете мне впоросы.

То что вы переходите на защищенное соединение, это я понял, я непонял в какой-моент.
При логине - это значит после того как пользователь авторизовался, оне переходит в защищенный режим.

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

440hz

php.ru
Гриша К.
страница логина уже находится на защищенном соединении и весь дальнейший обмен идет уже по нему. даже если пользователь не авторизировался, то все равно он уже находится на HTTPS и дальнейшая работа идет шифрованная. издержки так сказать. при логоффе обратно на http.

но повторюсь. я парился так один раз и под конкретный заказ, где это было в ТЗ. на остальных проектах я так не извращаюсь. обычная авторизация.

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

Гриша К.

Новичок
440hz, огромное вам спасибо за терпение и за разъяснения.
Теперь я полностью вас понял, небольшое представление о https имею, и авторизуюсь на своем хостинге как раз таким образом. И на e-mail таким же образом авторизуюсь.

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

В условиях моего проекта, функции модератора таковы, что он неможет ничего удалить или изменить, кроме одного значения, в его функции входит только допуск или недопуск входящей информации, плюс некоторые операции, которые не могут нанести вред пользователю, за исключением того, что возможно узнать его e-mail адрес.
А администратор может все удалять и изменять, и эти функции нужны в редких случаях, но они могут нанести вред пользователю и соответсвенно проекту, в случае недобросовестного их использования.
 

440hz

php.ru
Гриша К.
хорошо еще использовать время жизни сессии не очень большое. например 1-5 минут. тогда если человек все-таки отойдет от компа то система отрубит его, если не будет активности за этот период.

хотя некоторых "тормозов" это просто бесит. гыгыгы ...

---

делал один проект именно так (в ТЗ такое было), операторшам (тетки, далекие от компов), которые думали более 5 минут над поступающей инфой, приходилось логинится заново. как же они меня поносили "добрым словом", т.к. пароли были сложные.

особым шиком они считали прилепленный ими желтый стикер с паролем на мониторе, но после лишения премии некоторых "особо меня не любивших" поуспокоились.

кстати так до сих пор и живут ...
 

Гриша К.

Новичок
440hz, ух спасибо что напомнили про жизнь сессий, я знаю что можно устанавливать время, но как-то и забыл про это, я хотя с этим не работал, но думаю разберусь. Буду реализовывать этот вариант.
Этот вариант кстати очень полезный.

Я вот раньше работал в Сбербанке 2 года, платежи принимал, со вкладами и карточками работал (кстати как у меня было свободно, я рисовал логотипы и структуру своего сайта, а потом и программные коды изобретал на бумаге, потом дома все переносил на компьютер (windows у нас на работе не стоял) и меня долго за это ругали, но потом привыкли) и у нас стоял тоже время на авторизацию, бывало что забывали выйти из программы, а там, очень опасно если кто-то воспользуется чужим логином, потому что можно со счетами все что угодно творить.
И кстати некоторые операции должен был подтверждать админ, правдо пароль админа всегда кто-то узнавал, и чтобы его не звать для подтверждения набирали сами, а админ это узнавал, но так как ему не хотелось лишний раз подходить к нам он какбы это не видел, а потом уж и сам нам давал пароль.

Смена пароля проходила раз в месяц, т.е. по истечению срока, программа требовала переустановить пароль, и 5 предыдущих паролей запрещала вводить.

И поповоду приклеивания пароля на цветной бумажке, на мониторе, это вообще очень модный вариант, в определенном круге людей : )

--------------------------------
Ну и раз уж это офтоп, то маленький случай:
одна женщина жаловалась, что компьютер у нее постоянно отключается сам, после какого-то времени работы,
ну приехали к ней специалисты, провели диагностику, все впорядке, решили за ней посмотреть, так вот когда она сидела, поистечению какого-то времени он придвигалась все ближе к компьютеру и в итоге коленкой нажимала на кнопку выключения компьютера. : )
 
Сверху