Как стать автором
Обновить

Комментарии 137

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

А, если серьёзно, обязательно прочту и приведу механизм в соответствие с ФЗ.

Пока, если видите противоречие с ФЗ, укажите его, пожалуйста, если не трудно.
У меня есть четкое подозрение, что мы при этом собираем важную информацию о пользователях, без явного уведомления их об этом.
Думаю, пока мы не получим емэйл пользователя, вся информация о нём совершенно анонимна. А, как получим емэйл, напишем в нём, что у нас есть ого-го сколько про вас, если хотите, можете удалить.

С другой стороны. Забугорный Гугл, понятно, собирает тонну статистики на миллионы пользователей, причём эта статистика во многих случаях не анонимна. Но наш Яндекс занимается тем же. Допустим у меня есть аккаунт Яндекса, открытый на какой-нибудь вкладке, и я захожу на сайт с Яндекс.Метрикой. Яндекс быстренько собирает без моего ведома все мои передвижения по сайту (при отсутствии открытой вкладки с моим аккаунтом всё то же самое, только для Яндекса чуть посложнее). При этом Яндекс меня об этом никак не предупреждает.

Так что соблюдение данного ФЗ владельцем сайта скорее плюс в карму, чем насущная необходимость.
А IP?
И являются ли перемещение по сайту и прочие логи песнональными данными?
Вообще в законе формулировка такая, что под неё можно подвести всё, что угодно :(
Персональные данные — это данные, подтвержденные документально (например, паспорт). Все остальное — не считается. Можно ведь зайти и вбить ФИО — Дмитрий Медведев, например. Вот уж соберем важной информации!
Разве в законе есть такое определение?
Автор опередил меня по описанию подобной идеи.
Уже давно использую в одном из проектов vmuzike.net
По моему это очень хороший способ где данные пользователя не очень важны.
Если будет вход через день с того же браузера и с того же компьютера, то понятно, что это тот же пользователь, если через месяц – это всё равно тот же пользователь.

Очень не нравятся такие схемы в условиях «расшаривания» компов.
Видимо, у лесохозяйственников именно так принято %)))
Поясните, пожалуйста, что вы имеете ввиду под «расшариванием» компов.

За последние пару лет я наоборот наблюдаю обрастание людей всё большим количеством персональных компьютеров, начиная от настольных, заканчивая смартфонами.
Речь идет о совместном использовании одного компьютера несколькими человеками.
Например, домашние (семейные) компьютеры.
Согласен, это потенциальная дыра. Но на домашних компьютерах, где никто ничего ни от кого не скрывает, и в чужой ящик можно в принципе попасть без проблем. Для защиты от таких случайностей придуманы учетные записи, которые поддерживаются не только в ОСах, но и в некоторых браузерах.
Вот поэтому и вопрос о необходимости авторизации. Одно дело — скрыть от других пользователей историю своих действий (хрен с ним, даже если узнают), совсем другое — если у пользователей разные права на действия (например, я модерирую форум, а моя мама иногда его читает. Вовсе бы не хотелось, чтобы она имела возможность случайно что-то почистить)
Какой же вы дотошный )

В этом случае вам поможет кнопка «Выйти» или личная учётная запись.
Это не дотошность, это минус вашей системе авторизации. Вы идентифицируете компьютер, но не пользователя. В этом существенная разница.
Этот «минус» есть ещё на таких «никому не нужных» сайтах, как: Gmail, ВКонтакте, Twitter, Facebook.

Мама любого пользователя этих ресурсов может натворить много делов от его имени, если её беззаботное чадо не нажало кнопку «Выйти» или ещё как-то не позаботилось о защите от мамы.
Насколько я понял, вы начинаете идентифицировать пользователя еще до того, как он ввел что-либо его идентифицирующее на Вашем сайте. Это меня и смущает.
Идентификация и авторизация, как говорят в Одессе, две большие разницы.

Любой документ с фотографией подтверждает очень тесную связь между вашим лицом и именем в документе, но ещё не даёт вам право сделать крупную покупку по банковской карте с тем же именем. Паспорт или водительские права такое право дают.
Как обсудили в соседней ветке, Вам следует уточнить область применения Вашей схемы авторизации. Для одних проектов она удобна, для других не применима.
По этому вопросу добавил обновление «UPD2».
Идентифицируется не компьютер, а сочетание конкретного браузера с конкретным аккаунтом. Если не хотите, чтобы другой пользователь случайно сделал что-то от вашего имени (на данном сайте, на любом другом или вообще в какой-то другой программе) — пользуйтесь разными аккаунтами. Они именно для этого и придуманы.
PS. Имеется в виду аккаунт в операционной системе. Блин, почему нельзя редактировать комментарии? :-(
Войти на чужой аккаунт не особо большая проблема при наличии физ. доступа.
Случайно войти на чужой аккаунт довольно затруднительно, даже при наличии физ. доступа к компьютеру ;-)
Не ту иконку жмакнули на экране логона.
И случайно ввели чужой пароль?
На домашних машинах пароли используются не так часто, как того требуют нормы безопасности.
> Например, домашние (семейные) компьютеры.

Домашние — это ещё ладно… А вот реально разделяемые компы в ВУЗах, школах, интернет-кафе и ещё в куче разных мест, в большинстве из которых никакой личной учётной записи на уровне ОС у пользователей не будет — это вполне реальная, а не потенциальная, дыра в подобных системах аутентификации.
Посмотреть этот коммент. Может он прояснит ситуацию.
НЛО прилетело и опубликовало эту надпись здесь
Рабочие компы, например. Да и редкость, по-моему, когда у мужа с женой по десктопу.
Наверное я слишком сужу по себе )

У жены десктоп, у меня ноут.
Такое чаще. Но неужели жена ни разу не садится за десктоп, а вы не берёте её ноут?
Это очень и очень редко. Тем более реже будет ситуация, когда мы без ведома друг друга зайдём на один и тот же сайт впервые и что-нибудь там сделаем )
Взаимные подарки на НГ или годовщину свадьбы? У меня один раз из-за умного инет-магазина сюрприз был испорчен :(
Вообще, в программировании понятие «редко» должно встречаться как можно реже. Вероятности — вещи прикольная, но хороший алгоритм должен быть спроектирован так, чтобы работало всегда. Пусть при реализации будут какие-то баги, но они должны быть исправимыми ошибками.
То есть, дыра все-таки есть. До того как человек по логину-паролю авторизуется, это может быть не конкретный человек. Да и после, если не разлогинится — тоже. Статистика получится неверной. Да, точно так же будет и на других сайтах с «запомнить меня», но вы же придумываете новый способ авторизации, который лучше.
В итоге, как я понял, получается упрощение авторизации для некоего круга пользователей, которые:
-обладают личным пк без доступа других людей
-не чистят куки
— пользуются только одним ПК
Те, кто пользуются одним ПК не входят в тех, кто пользуется каждый своим ПК и не пользуются чужими, не?
Запутался в «не» и так и не понял смысла вопроса.
На мой взгляд, разговор о реализации авторизационных механизмов необходимо начинать с тех задач, для которых эта самая авторизация и осуществляется. Предполагается ли использование конфиденциальных сведений (помимо сбора статистики)? Дополнительные сервисы? Разделенный доступ к информации? И так далее и тому подобное.
А пока авторизация имеет смысл лишь для просмотра истории своих действий, действительно, вполне достаточно хранить в куках идентификатор.
Почему вы считаете, что описанный механизм годиться лишь для упрощённых задач? Без авторизации через емэйл пользователь не увидит никакой конфиденциальной информации.

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

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


Теперь для авторизации пользователь сможет вводить свои емэйл и пароль в любое время, и это не будет отличаться от любого другого сайта.

До авторизации мы можем вывести персональное приветствие пользователю и предложить авторизоваться. Собственно, на ozon.ru так и сделано.
Наверное, я попросту из вашей статьи не понял этого самого механизма. Поправьте меня, если я ошибаюсь. Вы предлагаете следующее:
1. пока пользователь не авторизовался «явным образом», мы опознаем его по идентификатору сессии в куках
2. как только где-то на сайте неавторизованный пользователь ввел свой email (например, сделал заказ), мы сразу регистрируем этот email и отправляем ему сгенерированный пароль
3. в дальнейшем этот пользователь может использовать этот пароль для авторизации.
Правильно?
Собственно, мое сомнение, выраженное в предыдущем комментарии, касалось лишь одного момента: неявность процедуры регистрации. То есть я зарегистрировался, сам того не желая. Для простых случаев этого вполне достаточно (наверное).
Посмотрим на это с другой стороны. Я захожу на сайт с явным намерением зарегистрироваться. Ну вот по каким-то причинам хочу это сделать. Как мне этого добиться?
1. Да мы опознаём его по идентификатору сессии. Но мы его идентифицируем, а не авторизуем. Без авторизации он не сможет ни сделать что-то, для чего нужна авторизация, ни посмотреть, что он уже сделал.
2. Всё правильно. При заказе основная цель письма — подтвердить заказ, пароль — лишь бонусная информация.
3. Всё правильно.

Я об этом не написал, но, если человек захочет зарегистрироваться явно — ссылку «Зарегистрироваться» никто не отменял )
Всё понятно. Тогда ничего нового.
Единственное, на что хотел обратить внимание: такая неявная авторизация, которую вы предлагаете, имеет право быть реализованной только для тех ресурсов, в которых авторизация, по большому счету, не очень-то и нужна.
Во всех случаях, когда авторизация важна (личный счет, конфиденциальная информация, дополнительные возможности и т.п.) регистрация должна быть явной.
У себя делал похожую схему, она-то как раз и отвечает на ваш вопрос.
Для интернет-магазина делал полноценную регистрацию (простую, но полноценную, с вводом всех необходимых ..). Так же предлагал пользователям вариант быстрой покупки без регистрации, запрашивая контактную информацию. Если пользователь ввел емейл — регистрировал его и отсылал пароль.

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

Поставлю вам плюс за полезную информацию. Даже не догадывался, что можно, покупая без регистрации, все равно быть зарегистрированным.
Конечно, автоматизация, удобство — все это хорошо. Но лучше и честнее оставить обычную регистрацию, где явно будет указано, что я согласен оставить данные на сайте у виду учетной записи.
1) Явная рег-ция и так остается
2) Вы в любом случае соглашаетесь на то, что мне станут известны ваши данные (ибо без них я не смогу продать вам товар

При этом, с моей стороны, не следует никаких навязчивых действий, я просто сообщу,. что вы можете входить на сайт под своим логином\паролем и получать бонусы\скидки… не хотите — ходите анонимно…
1) У вас есть вариант быстрой покупки без регистрации. Если пользователь ввел е-мейл, он регистрируется. Одно противоречит второму, ИМХО, я так понял из ваших слов.
2) Я даю согласие на одноразовое использование информации. Доставили заказ, удалили данные. Если есть желание покупать с удобством, я заведу учетную запись сам.
Вы — заведете, но много моих клиентов — не будут даже думать о слове «регистрация», я уже писал, у них и так мало времени. Они зашли на сайт (может даже на конкретный товар с рассылки, к примеру), нажали купить и забыли, до того момента, пока курьер в дверь не позвонит.

В любом случае — надо смотреть, как правильно делает автор статьи, на ресурс и на целевых его посетителей. И уже исходя из этой информации выбирать тот или иной вид рег-ции \ авторизации.
Вы правы. Делать что-то без согласия или хотя бы одобрения со стороны пользователя нехорошо (это может позволить себе только Гугл).

Над полной информированностью пользователя мне нужно ещё поработать.
Генерация пароля и отправка его на имэйл — это морока, которой ни один обыватель рад не будет.
Процедура подтверждения регистрации есть на любом более менее нормальном сайте. Но там без регистрации сделать ничего нельзя.

При этом механизме сделать можно.
Понятие «нормальности» при и «подтверждения по почте» никак не связаны.
Это просто глупый бастион от тупых ботов, которые не пользуются почтой.
Почему же?
Я сделал заказ на 800 грн, к примеру. На почту мне пришло сообщение:
«Мы вас зарегистрировали, чтоб вы могли получить скидку (от 1000 грн — 25%). Пароль — … „
Я буду рад такой мороке, особенно, если я собирался стать клиентом этой фирмы.

А если нет — ну ничего страшного, просто проигнорю…
Одно дело — ткнуть по ссылке в почте, причем сделать это можно не сразу, а потом.

Другое дело — скопировать из почты пароль и ввести его на сайт. Вы сами, наверно, понимаете, что НИ ОДИН из пользователей этот пароль не запомнит. И будет либо постоянно лазить за ним в почту, либо вынужден будет лезть в настройки и поменять на привычный. И то, и другое, гораздо менее удобно, чем просто задать собственный пароль.
Это мелочи реализации.
и в этом посте вспомню про imobilco.ru, там подобная идентификация происходит, но там ничего на мыло не отправляется, там очень просто и доступно можно отредактировать временные данные для входа т.е. логин заменяете на email, пароль на любой удобный, и в дальнейшем входите под этими данными, и не надо лишний раз на почту заходить.

таким образом двух зайцев:
1) постоянный аккаунт
2) если юзер согласился, не надо лишнего поля для подписки на рассылку
У такого вида авторизации, пока не вышлют пароль, сомнительная безопасность
А так, думаю, самая простая авторизация, это, сел ты за компьютер, а он узнал тебя, и соответственно авторизует тебя на сайтах под тобой.
Электронное УЛ и личный сертификат есть уже в любой стране Евросоюза, думаю у других тоже не за горами. Все эти Open Id и остальные методы в будущем могут кануть в лету, все что потребуется это разрешить сайту прочитать твои данные.
Поясните, пожалуйста, что же здесь сомнительного?

Если пользователь имеет доступ к своему почтовому ящику — это он, если нет — не он. В противном случае — нечего раздавать пароль от своего ящика кому попало.
Думаю, отправлять генерируемый пароль на почту очень скудное решение. Меня как пользователь это раздражает. Раз уж пользователь ввел email и ты его запомнил почему не предложить подтвердить регистрацию паролем. Потом у каждого матерого интернетчика есть мусорные email которые никогда и не читаются, все письма оттуда идут прямо на помойку.
Подождите, если при регистрации вы ввели мусорный емейл — это только ваши заботы.
Да, вместо генерации пароля можно, к примеру, отправлять ссылку на «Подтвердить регистрацию и ввести пароль», но от этого схема кардинально не меняется.
А что делать с этим сгенерированным паролем? Я должен скопировать его, ввести на Вашем сайте. А дальше я либо забываю его (в лучшем случае сохраняя в одном браузере в сохраненных паролях), либо оставляю письмо с паролем у себя в Входящих, что тоже небезопасно. Куда лучше предложить мне ввести один из моих собственных стандартных паролей, которые я помню и на который я все равно сменю Ваш сгенерированный, если соберусь пользоваться Вашим сервисом всерьез и надолго.
Стандартную регистрацию и всё, что с ней связано (смена пароля, восстановление пароля), никто не отменял. Да, я о ней совсем не упомянул, поэтому сделал обновление.
Это уже вопрос реализации. В письме можно на самом видном месте поставить ссылку «смените сгенерированный пароль прямо сейчас», а ниже вообще можно написать полное руководство по работе с аккаунтом.
А вы читали когда-либо лицензионные соглашения, выдаваемые вам при установке программ? Можно еще и докторскую по нейрохирургии в письмо вложить, пусть народ просвещается.

В одной из панелей управления хостингом я видел хорошую иконку рядом с полем ввода пароля: «Сгенерировать пароль». Если клиент боится, что его пароль недостаточно безопасен, он генерирует его на месте. Иначе он пользуется своими заготовками.

Не стоит навязывать посетителям непривычный функционал там, где он им не нужен, если он существенно не упрощает работу с сервисом. В случае с данным способом регистрации/авторизации в комментариях привели достаточно много примеров неудачности использования такого подхода. Не вижу смысла использовать худший способ, если есть проверенный опытом и всем знакомый лучший.
Не стоит грести под одну гребенку. На каждом сайте свой функционал и своя аудитория.
И по поводу тезиса «Не стоит навязывать посетителям непривычный функционал» тоже есть сомнения. Этак мы бы с вами до сих пор на счетах считали.
Собственно, в целом я позицию автора топика поддерживаю. Если речь идет об интернет-магазине (или просто бизнес-сайте, весь функционал которого сводится к отправке заявки), то в этом случае как раз такой способ регистрации вполне удобен (я делаю заказ и попутно регистрируюсь, а не наоборот, как обычно навязывают мне: сперва зарегистрируйся, а уж потом делай заказ), он минимизирует мои действия и не заставляет задумываться, все ли я делаю правильно. Собственно, на таких сайтах весь дополнительный профит в авторизации заключается в просмотре истории, виш-листах и бонусах. Ну то есть ничего такого, что может мне навредить, если попадет в чужие руки (кроме, может быть, испорченного настроения от того, что кто-то тут побывал).
Совсем другая история, если речь идет о сервисах, предполагающих дополнительные возможности. Там, я считаю, авторизация (как и регистрация) обязана быть явной.
Согласен с Вами. Автору не мешало бы уточнить, для каких именно сервисов он предполагает подобную схему. Тогда и споров было бы на порядок меньше. Претендуя же на всеохватность, он естественно будет встречать непонимание и неприятие.
Собственно, весь сыр-бор именно из-за вот этой крамольной фразы:
«Если будет вход через день с того же браузера и с того же компьютера, то понятно, что это тот же пользователь, если через месяц – это всё равно тот же пользователь», отягощенной вот этим: «Можно увеличить время хранения идентификатора сессии в куках у посетителя и самой сессии на сервере. Думаю, даже нужно, для большей надёжности.»
Что вы имеете ввиду под «дополнительными возможностями»?
Это когда «все пользователи равны, но некоторые равнее» %)))
Одним словом, когда у авторизованного пользователя есть возможность сделать какие-то действия, которые у не-авторизованного отсутствуют. Здесь речь не о получении дополнительной информации (история заказов, например) и не получении дополнительных профитов (скидки и бонусы), а именно о действиях. Возможность редактирования чего-то, закачивания файлов, еще что-то более серьезное. То, что в чужих руках может нанести мне вред.
Кажется я понял )

Вы имеете ввиду случай, когда я зашёл на сайт и оставил комментарий, снова я зашёл на сайт и оставил комментарий, зашла мама на сайт и оставила комментарий, а сайт будет думать, что все три коммента мои. Так?

Да, такая ситуация данным механизмом не предусмотрена.

Буду думать…
Добавил обновление «UPD2».
Вы еще сильнее усложнили вашу ситуацию с этим апдейтом %))))
Сейчас вам и про капчу скажут, и про «такое сложное действие как заказ», про обобщение вашей идеи на «любой ресурс в независимости от его сложности и масштабности».

Давайте попробуем с другой стороны подойти к вашей идее.
Допустим, вы реализовали его в интернет-магазине. Я — покупатель. Я в данный момент времени нахожусь далеко от дома, в другой стране, мне жизненно необходимо сделать заказ в вашем магазине. При этом я хочу, чтобы на мой email пришло подтверждение об этом заказе (как минимум, чтобы в почте сохранились позиции заказа и сумма, чтобы потом я смог проверить), то есть email я обязательно укажу. Но при этом я не хочу, чтобы мой email был зарегистрирован (я ведь сижу на чужом компьютере, мне бы не хотелось, чтобы потом человек с него продолжал делать покупки от моего имени).
Предложите реализацию?
Итак, по шагам (допустим вас зовут Пётр Петрович):

0. Вы впервые зашли на сайт с чужого компьютера. Сайт идентифицирует вас как Анонима №ХХХ.
1. Вы делаете заказ и указываете емэйл и имя. Сайт теперь идентифицирует вас как Петра Петровича.
2. На указанный емэйл приходит запрос на подтверждение.
3. Вы переходите по ссылке. Подтверждение заказа выполняется, а авторизация не выполняется. Сайт по-прежнему идентифицирует вас как Петра Петровича.
4. Хозяин чужого компьютера (ХЧК) заходит на этот же сайт. Сайт идентифицирует его как Петра Петровича.
5. ХЧК, потирая ручонки, выбирает себе дорогую хрень и нажимает кнопку «Оформить заказ». Выходит форма заказа без полей «Имя» и «Емэйл». ХЧК заполняет остальное и нажимает кнопку «Заказать».
6. Сайт ему и говорит: «Пётр Петрович, на ваш емэйл отправлена ссылка для подтверждения заявки». Естественно, он не может подтвердить заказ, если вы потрудились нажать кнопку «Выйти» из своего почтовика.
7. Вам, Петру Петровичу, приходит письмо: «Подтвердите заказ бла-бла-бла. Если этот заказ сделан не вами, ваша сессия на том компьютере (ип, браузер) заблокируется через 2 дня.

Как вам такой расклад?

По-прежнему настаиваю на любом ресурсе )
Вот именно такой расклад мне и не нравится.
1. для выполнения заказа требуется подтверждение через email — это значит, что все наши с вами разговоры про упрощение жизни пользователей летят в тар-тарары. Для выполнения заказа вы предлагаете мне сделать еще одно действие (причем не простое! я должен войти в свою почту, найти там письмо и нажать ссылку)? А если я на вражеском компьютере не хочу входить в почту, потому что придется вводить пароль? Я просто хочу чтобы вы мне привезли пиццу — вот мой адрес, вот телефон. Если бы такое произошло в жизни (я выбирал пиццу, оформлял заказ, нажал «заказать!» — опа — оказывается, мне надо теперь лезть в почту, подтверждать заказ? — сразу ухожу на другой сайт)
2. допустим, я не подтверждаю заказ через email, я просто ввел его куда просили и уехал к себе домой (в наивных ожиданиях, что мой email был запрошен исключительно для целей информирования). Дома я вижу в письме ссылку на регистрацию, нажимаю, авторизуюсь, захожу на ваш сайт, смотрю историю моего посещения — опа — оказывается я на вашем сайте не только пиццу искал, но и какие-то секс-игрушки? (а это ХЧК ничтоже сумняшеся просто гулял по сайту после моего отъезда, не желая собственно никакого вреда мне, ему же не было предложено де-идентифицироваться).
Одним словом, чем дальше в лес — тем толще партизаны.
Продолжаю считать вашу идею заслуживающей внимания при двух дополнениях:
1. не для любого ресурса
2. при вводе email я должен явным образом указать «зарегистрируйте этот email» (простая галочка, остальное как вы и описали)
Про телефон замечание принимается. Он тоже может применяться для подтверждения заказа. Он даже может применяться для получения пароля, если владельца сайта это устроит.

Все действия категории 2 считаются не критичными при выполнении разными людьми из одной сессии. Сюда относится просмотр страниц и прочая мелочь. Если вдруг владелец сайта классифицирует просмотр страниц как действие категории 3, то без авторизации ХЧК не посмотрет даже про резиновые члены на сайте по доставке пиццы.

Вы всё упираетесь в вопрос: кто-то находясь в моей сессии выполняет какие-то действия категории 2, а сайт думает, что это я. Так думает абсолютно ЛЮБОЙ сайт пока сессия не закрыта на сервере и время куки не истекло в браузере.

Да, я предложил увеличить время хранения куки и сессии. Но при правильной классификации действий по трём категориям ни ваши конфиденциальные данные, ни ваш кошелёк не пострадают. Гарантия этого не в механизме, а в реализации этого механизма на конкретном сайте.

По-прежнему не ограничиваю сферу его применения.

Я не защищаю себя, как автора этой идеи (моё авторство, в общем-то, спорно). Я защищаю идею и ищу с вашей помощью в ней дыры.
«Вы всё упираетесь в вопрос: кто-то находясь в моей сессии выполняет какие-то действия категории 2, а сайт думает, что это я. Так думает абсолютно ЛЮБОЙ сайт пока сессия не закрыта на сервере и время куки не истекло в браузере.»
Может быть, в этом вопросе и кроется наше с вами взаимное непонимание.
Никакой абсолютно любой сайт не думает, что это я выполняю какие-то действия. Абсолютно любой сайт думает, что это кто-то на том же компьютере и в том же браузере выполняет эти действия. Абсолютно любому сайту абсолютно наплевать, делаются эти действия одним человеком или разными. До тех пор, пока этот человек не авторизовался. То есть не ввел свой логин и пароль.
Допустим, вы в неком блоге оставили комментарий. Зашли в этот блог через пару дней и обнаружили в форме комментария услужливо подставленные ваше имя и e-mail. Вы считаете, это доказывает, что «сайт все еще считает, что за компьютером сидит тот же человек»? А вот и нет. Сайт предполагает (если можно так выразиться), что это тот же человек, поэтому предлагает ему сократить свои действия. А если это другой человек — наплевать, он просто стирает ваше имя и пишет свое. Сайту до этого дела нет.
А вот следуя вашему алгоритму сайт, в случае, если в форму комментария будет написано другое имя, должен такую ситуацию трактовать как «пользователь принял решение изменить свое имя, а возможно, и пол».
Да простят меня хабра-пользователи за выкрутасы вокруг слов «сайт думает, сайт считает» ))))
Я вас понял.

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

Предлагаю каждому остаться при своём мнении )
Эту ситуацию не нужно разруливать, она приведена для примера, причем в иллюстративном варианте.
Вам нужно просто принять, что идентификация пользователя по факту «тот же компьютер, тот же браузер, те же куки» чревата ошибками, как минимум, а как максимум — нежелательными последствиями для пользователя.
Да, я это понимаю и принимаю. В основном, благодаря вам )

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

Добавлю к топику. Люблю людей, уделяющих внимание мелочам.
И чтобы далеко не уходить от темы, все-таки ответьте на вопрос, обозначенный предыдущим комментарием: вы действительно считаете, что пользователь должен подтверждать свой заказ через e-mail? или даже телефон?
Замечу: одно дело, когда я оставил на сайте телефон, по которому мне (!!!) перезванивают, и я говорю «да, все правильно, это именно я, заказал именно это, везите скорее, жрать хочу».
И совсем другое дело, когда после нажатия кнопки «заказать!» я должен самостоятельно выполнить еще какие-то действия (нажать ссылку в письме, или дождаться смс и отправить в ответ другое смс).
Считаю, что такие подтверждения сводят на нет все ваши благие желания по упрощению жизни пользователям.
Сначала цитата из топика "Отказ от регистрации":
Во-первых, половина пользователей, поленится регистрироваться и просто уйдёт туда, где регистрироваться не нужно. Во-вторых, даже те, кто зарегистрируются, если они не станут тут же постоянными посетителями (а это бывает редко), тут же забудут этот сайт навсегда.

Это основной посыл к написанию моего топика, т.е. не сначала регистрация и потом плюшки, а сначала плюшки и потом (или во время) регистрация.

При заказе пиццы подтверждение по емэйлу глупо, но это тонкости реализации предложенного механизма. Будет достаточно звонка оператора на указанный телефон, но это опять же тонкости реализации предложенного механизма.
Ну вот, начинается игра в двойные стандарты. Сперва вы говорите, что эта система работоспособна для любых ресурсов, теперь что для заказа пиццы не работоспособна.
Где я это сказал? ;)

Тонкости реализации механизма — это не отказ от применения механизма.
Извините, мне кажется, дальнейшее обсуждение бессмысленным. Вам кажется, что вы все понимаете, а на самом деле вводите себя в заблуждение.
Буду рад, если вы в следующей статье опишите конкретную задачу, конкретный ресурс, конкретные возможности и конкретную реализацию. Можно будет на конкретном примере показать вам, где именно вы ошибаетесь.
Прочтите ещё, пожалуйста, UPD3.

По завершении проекта для лесохозяйственников обязательно напишу подробности реализации и скину вам ссылку на топик.
Прочитал. А теперь вы сами перечитайте, пожалуйста, всю вашу статью. И ужаснитесь всей той сложности, которую вы наворотили поверх вновь и вновь открываемых проблем. В первом апдейте согласились, что явная регистрация тоже должна быть реализована. Во втором ввели новые понятия (три уровня критичных действий пользователя). В третьем — одно новое понятие (персональные данные) и одно новое определение («круто изменились»).
Имеет смысл пересмотреть всю систему целиком, нет?
А ведь совсем простое решение было описано рядом
Понятно, изначальный посыл — полностью ошибочный. 99% активных пользователей интернета уже давным давно привыкли к различным вариациям регистрации — обычная, OpenID, OmniAuth (через соц.сервисы и прочее).
Поэтому если пользователя сайт привлёк в плане многоразового использования, то он зарегистрируется сам в явной форме без всяких проблем.
А если ему надо провести с помощью сайта разовое действие, а такая возможность тоже должна быть, то ему не надо регистрироваться никак, ни явно, ни в виде удлинённых сессий. Наоборот, все данные должны удаляться из сессии как только действие завершено. Например, после оформления заказа необходимо удалять id заказа из сессии и высылать пользователю ссылку с токеном для доступа к странице с информацией о заказе, а не продлевать сессию на месяцы.
Дайте, пожалуйста, ссылку на источник вашей информации о 99%.
99% означает «все за редким исключением особо принципиальных апологетов отказа от регистрации».
Если найдёте хотя бы пару тысяч пользователей, которые провели в интернете более 1000 часов и не завели ни одного аккаунта с помощью явной процедуры регистрации, то я пересмотрю свою оценку.
В моей статье написано, что отказаться от OpenID, который я уважаю, меня побудил как раз тот факт, что основные представители моей целевой аудитории как раз далеки от показателя «более 1000 часов в интернете».
Я уж молчу о том, что вы боретесь с симптомом, а не причиной низкой конверсии.
Одна из базовых аксиом сети Интернет гласит, что если сайт полезен и/или интересен пользователям, то их не остановит ничто, ни сложнейшая процедура регистрации, ни доступ по приглашениям, ни капча, в которой с первого раза не разобраться. А уж упрощённая регистрация (email/пароль, OpenID, OmniAuth) может отпугнуть сколь-либо существенное кол-во заинтересованных пользователей, только в случае если ваш сайт — совсем полный трэш. Хотя и это не так, потому что их отпугнёт отнюдь не регистрация как таковая, а тот факт, что сайт фиговый.
Вы ещё скажите, что приятный дизайн, правильная типографика, удобная навигация — это тоже всё «борьба с симптомами». Я уж молчу про такие факторы, как интуитивно понятный интерфейс в целом и SEO (хотя бы внутренняя оптимизация).
Да всё кроме IxD (проектирования взаимодействия) и миссии сайта — «борьба с симптомами».
На SEO пользователям глубоко наплевать, а когда эта оптимизация агрессивна, то она идёт только во вред пользователям.
«приятный дизайн» — это субъективизм.
«правильная типографика» в вебе — это только для особо эстетствующих маргиналов, большинству пользователей плевать на типографику, а от выносок многих вообще подташнивает.
«удобная навигация» — это верхушка айсберга IxD, скажу только что одной только «удобной» мало.
Почему вы считаете, что упрощение регистрации не относится к IxD?
«Каждая новая сессия – это новый пользователь. Если будет вход через день с того же браузера и с того же компьютера, то понятно, что это тот же пользователь, если через месяц – это всё равно тот же пользователь»

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

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

Главное, чего я не понял:
Если будет вход через день с того же браузера и с того же компьютера, то понятно, что это тот же пользователь, если через месяц – это всё равно тот же пользователь.
Но до авторизации ему не будет доступна история его взаимодействия с нашим сайтом.

Какой смысл запоминать пользователя, хранить куки, если для того, чтобы увидеть сделанные заказы, историю посещений и т.д. нужно регистрироваться? «Это здесь я искал Айпад? Может, я здесь положил в корзину но не заказал планшет? Сейчас зарегистрируюсь, увижу». Не вижу никакого выигрыша для клиента.
Многие из моих клиентов не хотят регистрироваться, мол, у них и так мало времени…
Но когда, сделав несколько заказов на солидную сумму, они не понимают, почему у них еще нет скидки — начинаются проблемы и «терки», чтоб уладить ситуацию, ибо такого клиента (та и в принципе любого клиента) терять не хочется. Вот тут и начинаются мутки с запоминанием заказов пользователей без регистрации…
То-есть, при каждом заказе такие клиенты звонят из разных телефонов, дают разные адреса для доставки? Если нет, почему не вести учет таких клиентов не только по учеткам на сайте?
Когда таких клиентов 2-3 — проблем нет, но когда их скажем, 50, и когда заказы обрабатываются менеджерами в полуавтоматическом режиме,. важно, чтоб скидка сразу же показывалась в админ панели в информации о заказе.
Согласитесь, что каждый раз искать клиента в «блокноте ВИП» — не то, на что стоит тратить время.
Лично меня больше смущает тот факт, что я, вводя email «где-то на сайте» ни с того ни с сего вдруг оказался зарегистрированным, и мне на почту свалилось письмо, которое я не запрашивал. Оно, кстати, вообще может в спам свалиться, и я даже не узнаю, что мой email оказывается был зарегистрирован.
Получается, при такой реализации необходимо (чтобы все было грамотно):
— на сайте при вводе email давать пользователю возможность явным образом этот Email зарегистрировать (рядом с полем ввода email галочка «зарегистрируйте и отправьте мне на этот адрес пароль»)
— как ни крути, подтверждение email, то есть должна быть в письме ссылка «подтвердите этот адрес». Без этого никак.
Если вдруг пользователю понадобилось где-то на сайте ввести емэйл, то: Ура! – теперь этот пользователь не потеряется. Мы можем позволить ему идентифицировать себя, предложив ввести свой емэйл, в любом браузере и с любого компьютера.

Если место ввода емэйла не предполагает отправки письма (я, например, не могу представить себе такую ситуацию, но не исключаю её наличие), то письмо отправлено не будет.

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

Во всех остальных случаях пароль будет высылаться только по явному запросу пароля идентифицированным, но не авторизованным пользователем.
Подобный механизм года два или три назад был реализован на сайте www.picamatic.com/.
Лучше сначала разобраться для чего конкретно в данном случае нужна авторизация, хотя бы такая супер упрощенная. Уверен почти на 100%, что там где можно использовать такую недоавторизацию, лучше не использовать ее вообще. Для большинства простых операций на сайтах, типа комментирования, заказа и т.п. никакая авторизация просто не нужна.
По этому вопросу появилось обновление «UPD2».
Предположим, я захожу с чужого компьютера. Например, от друга или из интернет-клуба.
Тогда все прелести вашей неявной регистрации летят ко всем чертям.
Мне важны все мнения, но, пожалуйста, читайте внимательно UPD2. Также посмотрите мой комментарий.

Если и после этого будет, что возразить, с удовольствием отвечу.
Давайте не будем делить сайты на серьёзные и несерьёзные. Это несерьёзно.
А теперь вопрос — я посидел в интернет-клубе, написал пару комментариев. Кто мешает следующему за мной зайти на тот же сайт и, например, написать ещё комментариев? Или убрать мои? С капчей он справится, подтверждения на e-mail вы стараетесь не посылать. Ну, или скажем, социальная сеть: а что если за этот комп сядет КТО-ТО и просмотрит мои ужасно секретные фоточки?
Не надо путать идентификацию и авторизацию.

Если ресурс позволяет выложить фотки БЕЗ авторизации, то ЗАЧЕМ вы на него выкладываете свои «ужасно секретные фоточки»?

Если ресурс позволяет выложить фотки ТОЛЬКО ПОСЛЕ авторизации, то ПОЧЕМУ вы не нажали кнопку «Выйти» после выкладывания своих «ужасно секретных фоточек»?
ну… например, забыл.
Вот и остаются так на всяких файлообменниках чужие пароли и интимные фотки.
Что ж, это ваш косяк, а не механизма )
Для лесохозяйственников то что надо.
Но я закончил читать на "то мы высылаем на его емэйл пароль."
Прочитайте ещё, пожалуйста, для полноты картины UPD2. А то я чувствую в вас скептический настрой )
а что делать с ботами? Они не сохраняют куки и на практике это значит, что каждый запрос бота — новый пользователь в системе.
К примеру, гугл пришел, отсканировал сайт и у вас в базе +15000 новых пользователей за 1 день.
Я делал такую систему, по заявке клиента. Таких честных, как гугл, определить было легко, но у меня повадился какой-то бот прикидываться обычным firefox и генерил мне около 1000 новых пользователей в день, за квартал — это 100 тысяч мусора в базе…
Также это приводило к неадекватным тормозам, поскольку вставка пользователя, который как правило размазан по нескольким таблицам с индексами — это не самая быстрая операция.
Пока я не считаю пользователями тех, кто не поддерживает куки.

А бот, который прикидывался FF, куки поддерживал?
Но пользователя то надо создавать при старте сессии — то что у него нет в данный момент куки никак не связано с поддержкой куки.

Лучше всего написать собственного бота и на нем проверять
НЛО прилетело и опубликовало эту надпись здесь
Тяжело всё это и очень неоднозначно. Но можно подумать.
Кстати IP адрес для одного пользователя не всегда будет из одного города. Некоторые ОпСоСы выделяют московский IP для GSM-модемов. Это ещё более усложняет задачу.

Идеальный вариант — запись движений и щелчков мыши, но это требует времени и сил на исследования, которые есть разве что у Гугла )
НЛО прилетело и опубликовало эту надпись здесь
Описывал аналогичную схему у предыдущего поста в комментарии. Использую данную схему идентификации уже длительный период
Идея с числом очень хороша! Запишу в туду.
НЛО прилетело и опубликовало эту надпись здесь
Изначально я сделал распределение на столько компьютеров, со скольких зайдет пользователь, то есть, с какого бы компьютера не заходил пользователь повторно, сайт его узнавал бы. Но потом я подумал, если у пользователя нет возможности нажать на кнопку выход из аккаунта, то не стоит наверное его узнавать везде, ему может это не понравится. Сейчас работаю над тем как правильно реализовать узнавание пользователя на всех компьютерах с которых он посещал сайт, и что бы при этом у него была возможность сделать так что бы компьютер не запомнился. Как вариант, можно сделать заметную кнопку «Забыть меня» с подсказкой мол система не узнает вас если вы войдете с данного компьютера/браузера еще раз на наш сервис, а покупка/заказ все равно обработаются и с вами свяжутся!
Что то в этом роде, но пока работаю на правильной реализацией данного функционала.
НЛО прилетело и опубликовало эту надпись здесь
максимально автоматизировать, так как работаю часто для забугорных заказчиков, а там они невероятно критично относятся к лишнем телодвижениям
Можно увеличить время хранения идентификатора сессии в куках у посетителя и самой сессии на сервере.
сделать отдельным полем в БД, таб типа профайл или любая к ней приджоенная.
Когда все email провайдеры начнут поддерживать OpenId, то возможно будет при желании авторизовывать их с помощью текущего почтового пароля (при ужё введённом email), или даже не требовать пароль, если пользователь уже авторизован.
Вот страничка для тестов www.puffypoodles.com/lso2
Но пока такое работает не у всех, не все прикрутили openid discovery by email. Google apps работает (для email alias не работает, особенно если domen alias в gmail), liveinternet (на движке google apps) — нет, яндекс — да, рамблер — наполовину, пароль спрашивает, диалог выводит, но затем ошибка. Mail.ru совсем неработает, несмотря на наличие у них OpenId.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации