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


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

> Без описания
alnik-75
Отправлено: 09 Мая, 2015 - 11:47:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Добрый день форумчане и с праздником Победы!!!

Прошу Вас ознакомиться с созданной мною темой и дать советы по ее реализации.

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

Помогите правильно реализовать авторизацию, например, из письма почтовой рассылке, где имеется ссылка на личный профиль (кабинет пользователя). Понятно, что в ссылке из данного письма можно указать GET-параметры с данными пользователя (например, его id) и при переходе на сайт из базы получить данные по id этого пользователя и авторизовать его "принудительно", т.е. без введения всей необходимой информации. Данный способ совсем мне не кажется безопасным, в связи с чем я и создал эту темы.



ПРОШУ Вашего содействия в этом вопросе.

Заранее благодарен, Александр
 
 Top
teddy
Отправлено: 09 Мая, 2015 - 13:26:13
Post Id


Участник


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


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




День добрый, и вас с победой!)

Вообще идея не очень хорошая, объясню почему так думаю.

Основная проблема как вы заметили заключается именно в безопасности. Генерировать ссылку на основе банальных данных типа id не следует, ибо легко подобрать. Можно усложнить подбор генерируя одноразовый рандомный и сложный хеш для входа при отправке рассылки, но у этого способа тоже есть свои недостатки. Пользователь может отойти от компьютера в момент получения письма и кто то сторонний просто начнет шариться у него в почте и наткнется на ссылку. Или юзер случайно скопирует куда-то в чат ссылку и отвлечется сразу же например на звонок. Пока он будет говорить по телефону аккаунт уже 100 раз успеют нагнуть Улыбка Или юзер тупо может уйти забыв нажать кнопку "Выход" из почты, а через 10 минут вы отправите ему письмо. Соответственно доступ может оказаться у кого угодно. Не все сидят из дома и с запароленным входом на десктоп.

Как правило вход в систему должен быть явным, с указанием логина и пароля(это вовсе не значит, что логин и пароль нужно отправлять в ссылкеУлыбка. см.выше).
Заставляйте вводить данные без готовых ссылок. А после правильного ввода данных можно показать запрошенную страницу.
Ничего страшного в этом нет. Удобство удобством, но безопасность важнее. Особенно если в проекте есть денежные операции. Я бы не стал тратить деньги в проекте который присылает мне на почту ссылки со сквозным входом в систему.
 
 Top
alnik-75
Отправлено: 09 Мая, 2015 - 13:32:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Денежные операции, я думаю, сильно не пострадают, ведь в любом же случае при переводе, например, вебмани, будет затребована его личная информация.
Я вижу решение своей темы следующим образом.

1. Создаем таблицу с хэш-кодами
2. При осуществлении почтовой рассылки для каждого пользователя формируем хэш-код. Заносим его в таблицу и в тексте рассылки в ссылке указываем его.
3. При переходе по ссылке сверяем хэш-код и id пользователя , указанные в ссылке, с данными в таблице. При совпадение авторизуем пользователя и уничтожаем запись в таблице для того, чтобы исключить повторную авторизацию. В случае если, в таблице нет записи с id этого пользователя или если код не совпадает, то не авторизуем, соответственно.

Такой вариант приемлем? есть решения по-лучше?

(Отредактировано автором: 09 Мая, 2015 - 13:39:14)

 
 Top
teddy
Отправлено: 09 Мая, 2015 - 13:41:57
Post Id


Участник


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


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




А не обязательно что бы злоумышленник сам перевел деньги. Он может со своего аккаунта написать другу Васе, который не подозревает о взломе, что бы Вася перевел деньги на определенный счет. А Вася поверит, потому что это ему Петя написал, его лучший друг!

Можете отправлять ссылки для сквозного входа, вам никто не запрещает, но минусы как бы я вам сказал
(Добавление)
alnik-75 пишет:
Такой вариант приемлем?

Я об этом именно и писал Улыбка Только не хеш таблицу а достаточно было бы в таблице с юзерами сделать дополнительное поле типа force_auth_hash. Но чем плох этот вариант тоже написал

(Отредактировано автором: 09 Мая, 2015 - 13:45:25)

 
 Top
alnik-75
Отправлено: 09 Мая, 2015 - 13:46:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




teddy пишет:
А не обязательно что бы злоумышленник сам перевел деньги. Он может со своего аккаунта написать другу Васе, который не подозревает о взломе, что бы Вася перевел деньги на определенный счет. А Вася поверит, потому что это ему Петя написал, его лучший друг!

Можете отправлять ссылки для сквозного входа, вам никто не запрещает, но минусы как бы я вам сказал

Это то все понятно)))) Тогда как, в свете этих проблем, решить вопрос о восстановлении забытого пароля, когда с сайта по почте приходит вновь сгенерированный и измененный в БД для конкретного пользователя пароль?
(Добавление)
тут тоже кто-то из-за угла может отвлечь пользователя от компа и зайти вместо него на сайт)))
 
 Top
teddy
Отправлено: 09 Мая, 2015 - 13:58:35
Post Id


Участник


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


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




Если безопасность критична, то привязывать управление подобными операциями к мобильному телефону и желательно со сроком жизни. К примеру если в течении 5-15 минут не будет введен код, то он устаревает. Или через e-mail(если подобная безопасность менее критична), но тоже со сроком жизни. Как видите правила ужесточились, но от дебилов, обычно, никто не застрахован. Можно ещё больше ужесточить подобные процессы, все зависит от критичности и почти всегда есть свои плюсы и минусы.
 
 Top
alnik-75
Отправлено: 09 Мая, 2015 - 14:05:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




teddy пишет:
Если безопасность критична, то привязывать управление подобными операциями к мобильному телефону и желательно со сроком жизни. К примеру если в течении 5-15 минут не будет введен код, то он устаревает. Или через e-mail(если подобная безопасность менее критична), но тоже со сроком жизни. Как видите правила ужесточились, но от дебилов, обычно, никто не застрахован. Можно ещё больше ужесточить подобные процессы, все зависит от критичности и почти всегда есть свои плюсы и минусы.


Спасибо. Я прекрасно понимаю, что может пострадать безопасность.

Добавлю время жизни кода. Что еще можно сделать, чтобы при таких невыгоднях условиях максимально обеспечить безопасность?
 
 Top
teddy
Отправлено: 09 Мая, 2015 - 14:17:16
Post Id


Участник


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


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




alnik-75 пишет:
Что еще можно сделать, чтобы при таких невыгоднях условиях максимально обеспечить безопасность?

Для рассылки ставить время жизни было бы не очень корректно. Это событие не имитируется самим пользователем и он не знает когда придет сообщение от вас. Придет оно утром, а юзер вечером после работы перейдет по ссылке но хеш уже устареет. А ставить длительный таймаут тоже не вариант(Мы не значем как часто юзер проверяет почту). То что я говорил про таймауты это был ответ на ваш вопрос по поводу восстановления пароля.

alnik-75 пишет:
Что еще можно сделать, чтобы при таких невыгоднях условиях максимально обеспечить безопасность?

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

Если вам нужно сообщить пользователю какую то заманчивую информацию, то отправьте её по почте обычным текстом. В случае если юзеру надо что то сделать в личном кабинете, написать об этом в письме, а там он сам решит, зайти ему в систему, делать это действие или не делать...

(Отредактировано автором: 09 Мая, 2015 - 14:22:00)

 
 Top
Мелкий Супермодератор
Отправлено: 09 Мая, 2015 - 14:36:40
Post Id



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


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


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




Я бы сказал, что проблема не в том, что авторизация сквозная по ссылке. Это дико удобно пользователю и, в сущности, не проблема для многих сайтов - если есть доступ к почте, то восстановить пароль учётки на сайте штатным средством через эту же почту проблемой не является. А вот плохо, что неизвестно, человек ли пойдёт по ссылке или вовсе робот этой же самой почтовой системы.
Некоторое время назад мне весьма надоело, что гугл меня от моей же рассылки отписывает. Как в лучших домах, отписка осуществляется сразу по переходу по ссылке без лишних подтверждений. Потом смотрю в логах, почему мне письма не приходят - меня отписал заход с гугловского ip.


-----
PostgreSQL DBA
 
 Top
alnik-75
Отправлено: 09 Мая, 2015 - 14:49:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Мелкий пишет:
Я бы сказал, что проблема не в том, что авторизация сквозная по ссылке. Это дико удобно пользователю и, в сущности, не проблема для многих сайтов - если есть доступ к почте, то восстановить пароль учётки на сайте штатным средством через эту же почту проблемой не является. А вот плохо, что неизвестно, человек ли пойдёт по ссылке или вовсе робот этой же самой почтовой системы.
Некоторое время назад мне весьма надоело, что гугл меня от моей же рассылки отписывает. Как в лучших домах, отписка осуществляется сразу по переходу по ссылке без лишних подтверждений. Потом смотрю в логах, почему мне письма не приходят - меня отписал заход с гугловского ip.

Тогда спрашивается, как "победить" этот робот? Делать отписку, например, с подтверждением?

(Отредактировано автором: 09 Мая, 2015 - 15:09:19)

 
 Top
teddy
Отправлено: 09 Мая, 2015 - 15:14:57
Post Id


Участник


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


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




Мелкий пишет:
если есть доступ к почте, то восстановить пароль учётки на сайте штатным средством через эту же почту проблемой не является

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

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

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

(Отредактировано автором: 09 Мая, 2015 - 15:16:48)

 
 Top
teddy
Отправлено: 10 Мая, 2015 - 03:15:38
Post Id


Участник


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


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




Я тут ещё раз подумал над этим вопросом, появились новые мысли с которыми хочу поделиться.

alnik-75 пишет:
Тогда как, в свете этих проблем, решить вопрос о восстановлении забытого пароля, когда с сайта по почте приходит вновь сгенерированный и измененный в БД для конкретного пользователя пароль?

Думаю не следует менять пароль самостоятельно и отправлять его на почту по следующим причинам:
1. Зная e-mail можно доставлять пользователю неудобства, высылая пароль(если для восстановления достаточно указать e-mail адрес)
2. Пароль может остаться у пользователя на почте и при получении доступа к почте злоумышленник может воспользоваться паролем, если юзер его не сменил. В инет кафешках обычно установлены программы, которые блокируют компьютер когда у клиента закончилось время и очень часто клиент просто уходит. Вместо него может сразу сесть за комп новый клиент, и если админ не перезагрузит машину/не закроет все открытое, новый клиент окажется в почте старого клиента.

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

Мелкий пишет:
если есть доступ к почте, то восстановить пароль учётки на сайте штатным средством через эту же почту проблемой не является.

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

Что касается ссылок со сквозным входом, приведу аналогию в спойлере.
Спойлер (Отобразить)
 
 Top
exlant
Отправлено: 10 Мая, 2015 - 05:46:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


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




Присоединюсь к дискуссии Курю

На мое мнение сильное пренебрежение удобством, в пользу безопасности актуально, только в том случаи, если проект связан с денежными манипуляциями! Например сервисы различных интернет банков, покер румы, etc...

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

Но также очень плохо, когда этого выбора лишают, и делают сильный уклон в сторону безопасности!
Я пользуюсь одним сайтом, где решили за меня, что безопасность прежде всего! Там нет опции - "запомнить меня за данным пк", и приходиться каждый раз вводить свои логин и пароль, и при бездействии 10 мин. обрывают сеанс, и приходиться заново входить, ОЧЕНЬ НЕ УДОБНО! Я бы давно забил и не пользовался этим сайтом, если бы это был не мой интернет-провайдер, с вполне устраиваемыми для меня тарифами! И в связи с таким затруднением при входе, пароль я на него поставил очень простой(что на мой взгляд наоборот ослабило защиту), что бы можно было легко и быстро зайти... А самое интересное, что у них есть опция, при включении которой, можно делать какие то действия только по адресу, по которому мне предоставляется доступ к сети.... И вот спрашивается, почему нет возможности автоматического входа, и нафиг мне нужен постоянный обрыв сеанса, при бездействии! Даже в поддержку писал - что очень не удобно они сделали, на что мне ответили - безопасность для них прежде всего - это если вкратце, а так там была целая петиция, о том как у меня, на их мнение, могут увести пароль!

Подвожу к тому(чисто со стороны пользователя), что если бы для меня стоял выбор между, аналогичными по содержимому сайтами: один с повышенной защитой, и ужасной не удобностью, другой с плохой защитой, но зато удобный в использовании, я бы точно выбрал второй вариант! Я бы точно не задержался на форуме, если бы мне приходилось авторизоваться там, каждые 10 мин... Или же подтверждать свой вход, например через мобильник! Но все же хорошо, когда по выбору пользователя, можно усилить уровень защиты!

И на мое мнение, со стороны разработчика, пользователь должен сам позаботиться о сохранности своих логина и пароля! Если пользователь лопух и у него стырили логины и пароли, или как то вошли на его мыло, после того как он решил менять пароль за чужим пк, или же не нажал кнопочку выйти, когда находился не дома, то в чем тут, может быть вина разработчика? На мое мнение разработчик прежде всего отвечает, за сохранность логинов и паролей на своей серверной стороне, что бы не увели базу данных с логинами и паролями, а если и увели, то что бы не могли ею воспользоваться! Даже в он-лайн играх, куда некоторые вкладывают не маленькие деньги, пишут что администрация не несет ответственность при взломе аккаунта...

(Отредактировано автором: 10 Мая, 2015 - 05:57:51)

 
 Top
alnik-75
Отправлено: 10 Мая, 2015 - 10:58:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Спасибо, очень интересно почитать ваши мысли по этому поводу. Я тоже склоняюсь к мнению, что сайт (в данном случае доска объявлений, где нет прямых денежных операций) должен соответствовать требованиям безопасности, но не как не в ущерб удобства пользователя. все вы прекрасно знаете, как лишние меры безопасности нервируют людей. Для них повторность введения пароля-уже проблема.
Почему я создал эту тему? Просто хотел сделать обновление поданных объявлений прямо из рассылки, без лишних телодвижений
 
 Top
dcc0
Отправлено: 10 Мая, 2015 - 11:11:50
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




PHP:
скопировать код в буфер обмена
  1. В случаи с форумами, различными блогами, интернет магазинами, соц. сетями безопасность стоит не на первом месте, и далеко не критична...


Это Ваше субъективное мнение.
А если вы известный журналист и от вашего имени написали неизвестно чего, на вас подписано 10к человек, потом доказывай, что был не ты.

Цитата:
Там нет опции - "запомнить меня за данным пк

Браузеры по-прежнему предлагают сохранять пароли.

(Отредактировано автором: 10 Мая, 2015 - 11:25:10)



-----
Март 2021. Бросил программирование
 
 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