А вы искренне считаете что способы скругления углов это задача дизайнера?
Чтобы не троллить, по теме статьи добавлю одну ремарку — использование юзернейм и любой другой личной информации в где либо в URL это, пусть небольшой, но минус в секьюрити, касающийся не технических методов взлома а соц. инженерных.
Зависит от многих параметров. Если вы серьезно подходите к проектированию системы то вам необходимо учитывать то, какая информация станет доступной злоумышленнику в случае взлома.
И выбирать в том числе и способы формирования URL, форм, методов восстановления паролей и много другого исходя из оценки важности хранимой информации.
Как показывает практика даже малозначительная на первый взгляд регистрация на форуме с возможностью восстановить пароль по вопросу «Ваш любимый напиток» может взломщику позволить сделать первый шаг к вскрытию куда более серьезных аккаунтов связанных с юзернеймом.
Да, это все так.
Восстановление пароля та еще головная боль.
Скажем так, в данном случае я не вижу задачи серьезнее подходить к вопросам безопасности пользователя, чем это делается на подавляющем большинстве ресурсов, в угоду ЧПУ и индексации.
Видел процесс, разбитый на две стадии. На первой стадии юзернейм и мыло, а по ссылке в письме вторая часть, где указывается пароль. Плюс в том, что одновременно проверка почты проходит (активация).
Хорошая мысль и реализовать просто, проблема одна — это среди айтишников, американцев и европейцев один gmail, а вот на просторах россии это Яндекс, меилрушечка, и рамблер.
Если бы везде был один gmail проблем бы не было :)
вариант с 1 полем, думаю не работоспособный
капча в любом случае нужна, хотя бы чтобы не заддосили вводом форму большой базы емейлов
получается минимум 2 поля
Для одного ip — одна регистрация в сутки. Не будет описанной проблемы. К вопросу о «а если с этого ip еще кто-то хочет зарегаться» — очень мала вероятность такого события, а если и случится, то не жаль потерять одного пользователя ради защиты своей системы :)
Представьте ситуацию: студенческое общежитие, сидит студент, и видит новый — очень крутой сервис, регистрируется на нем, заходит и понимает, что регистрация дает кучу плюсов, и делает сервис просто божественным, спускается покурить, и в курилке всем рассказывает, какой крутой сервис он нашел. В итоге: как минимум, общежитие потерянных клиентов.
Эту идею надо развить. Например: для одного айпи одна регистрация без капчи. Вторая регистрация с того же айпи — «Мы сожалеем, бла-бла-бла, введи капчу»
Так например делает гугл в своем переводчике (да-да, мне случалось зае… задолбать гугл :) )
Очень хорошая идея, несколько строчек кода и уже снижение нокбеков на процент-другой.
Единственное сожаления писать — это лишнее, рядовой пользователь очень неоднозначно реагирует на сообщения что что-то не так и не так часто вникает что именно. Просто для последующих с капчой и все.
кстати, люди, у меня такой вопрос, может подскажите, делаю один проект, думаю как ЧПУ сделать, не охото делать test.ru/user/username, есть желание сделать test.ru/~username — вот думаю сто ли так делать и корректно ли вообще использование знака ~ в урл… может подскажите что?
Ну первый вариант — что если мне надо будет создать новый раздел, а адрес какой-то юзер займёт? Придётся или выгонять его или думать другое название… пока задумался о варианте с поддоменами, так проще будет, главное отсеять список сервисных поддоменов…
А через собаку, хз, у меня почему-то собака ассоциируется с почтой, та и не все парсеры нормально понимают нормально урл…
Но спасибо за совет ^_^
Со времени написании статьи поменялось одно: mail.ru стал провайдером openid. Правда сейчас, насколько удалось выяснить, аналогичную кнопку для него сделать не удастся (ситуация та же, что и в ЖЖ).
Лучшим пока считаю совмещенный вариант: 3 кнопки + email/пароль. Пароль — без подтверждения, вопрос с опечаткой при вводе решается ссылкой «восстановить пароль», по которой можно осуществить его сброс.
На большинстве сайтов человекопонятный username в url'е — вещь бесполезная. Чаще всего смотрят свой профайл, а там username вообще не нужен, т.к. ссылку «мой профайл» можно спокойно делать единой для всех.
Да, читал.
Вариант с OpenID тоже рассматривал, но как вспомогательное решение. OpenID провайдером становиться точно излишне.
username в ЧПУ я очень часто использую, начинаю набирать имя пользователя в строке той же лисы или chrome и сразу список акков человека на различных сайтах. Чтобы попасть на твой профиль, мне достаточно набрать в адресной строке kmi, что весьма удобно.
можно пойти еще дальше и отказаться, наконец, от обязательного ввода email-а с его обязательной проверкой.
2010-й год все-таки уже, а не 1995-й, когда зарегистрировать новый ящик было тяжело и этим реально какая-то «подлинность» пользователя проверялась.
далеко не у всех есть желание светить свой адрес на всех сайтах подряд, популярность сервисов типа mailinator и bugmenot тому подтверждение.
Согласен, но пока эту проблему решают в основном с помощью отсечения определенных доменов вроде 10minutesmail при регистрации. Списки доменов с помощью многочисленных соответствующих блек-листов, можно даже сделать автообновление блек-листа.
Ну я такого не планирую, откуда бы пользователь не пришел — все ок, только бы не спамил и не флудил, просто рассказываю об общей практике, с которой постоянно сталкиваюсь со своим 10minutemail
если пользователь хочет — пусть вводит мыло, подтверждает его и соглашается с получением спама тем, что угон мыла приведет к угону аккаунта и на сайте.
(кстати, это наиболее частый способ кражи аккаунтов в том же жж)
зачем эту очевидную дыру в безопасности делать принудительной — не очень понятно.
есть менее уязвимые способы не забывать пароль.
Делаю так:
изначально видно 3 поля: емейл, пароль в виде text и каптча. И поясняющие контролы:
1) мыло будет использоваться и как отображаемое имя и для логина;
2) если рядом кто-то есть, то текстовый пароль заменяется двумя type=«password»
Т.е. если человек не хочет напрягаться, то заполнит 2 поля и будет щастлив, впринципе, отображаемое на сайте имя можно поменять в личном кабинете.
Да, и для посетителей без js показываются сразу все поля, нельзя не любить пользователей популярного плагина Noscript
Если же пользователь напряжётся и кликнет, куда сказано, то ему покажутся отдельные поля для логина-отображаемого имени, емейла и привычные парольные поля.
главное не забыть для текстового парольного поля сделать autocomplete=«off»
А почему нет варианта с двумя полями username и email?
на email приходит пароль при регистрации, а username используется для авторизации.
При поптыке зарегистрировать уже существующий в базе username к username прибавлять порядковый номер или предлагать пользователю ввести другой.
А еще лучше сделать реалтаим проверку на аяксе.
А раз уж используем яваскрипт, то и капчу не надо — с помощью аякса присваиваем значение скрытому полю, без которого форма не обрабатывается
Все эти уловки работают только до того момента, пока спамеры не возьмутся обойти эту защиту. Пока сайт не популярный, любая простейшая защита будет работать, как только кто-то им заинтересуется, только каптча сможет остановить, да и то, не всякая.
Этим убираем пользователей без JS, и все равно защита слабая, ведь можно вычислить как это поле формируется, и сделать это аналогичным образом, например, если делается дополнительный AJAX запрос, то и робот это может сделать. Такая защита будет работать только от не настроенных для данного сайта роботов.
У нас такая рега делается так:
— Для незалогиненных создается аккаунт в базе на базе id в куках,
— Минимальная регистарция только по email (при желаении можно защититься паролем).
И практически весь функционал расчитан на незалогиненного пользователя.
Если обязательно ЧПУ, то можно развить вариант с одним полем: человек вводит e-mail, получает письмо, а на странице с подтверждением от него требуется ввести уникальный логин. Вариация с паролем: либо генерировать, либо просить вместе с логином.
Одно поле очень обрадует человека, мне всегда отталкивает большое кол-во полей, а раз уж письмо получил, то заполнит ещё 2-3 поля.
Нет предела совершенству, но есть предел сокращению, нельзя «убирать еще одно поле, потому что уже не 1995 год».
Имя пользователя или ник уже стал традицией. Не трогайте никнейм, %username%!
Электронная почта — слетели куки, забыл пароль, мало ли что, все пароли на все нужные сайты уже давно хранятся на имейле которому более полутора лет.
Пароль — генерировать его за пользователя — это почти преступление, пусть сам на свой страх и риск заботится. 1 легкий пароль для быстрой регистрации и 1 сложный на важных сайтах. Само собой что пароль в первый раз лучше вводить дважды.
Итого имеем обязательных 4 поля от которых деваться нельзя.
Плохо: секретные вопросы, это очень плохо. Вот их быть не должно.
Да покарает анально Аллах придумавших поля подтверждения пароля и e-mail. Покажите мне хоть одного адекватного человека, кторый не заполняет их копипастом.
Адрес почты видно, если есть подтверждение мыла, то ошибочно введенный адрес лишь отправит ссылку на регистрацию не туда. Ошибку ввода пароля всегда можно исправить через восстановление пароля, поэтому тоже второе поле не требуется. Правда все привыкли к подтверждению пароля при регистрации, если его убрать, то человек может подумать что это форма авторизации, а не регистрации.
Меня всегда напрягает, когда меня держат за идиота, что я не смогу отличить форму авторизации от регистрации или введу пароль или е-мейл не правильно. К тому же, как я уже выше написал, это абсолютно бесполезнейшая мера — ошибся один раз с паролем или мылом — точно так же ошибешься с ними и при копи-пасте.
Надо просто сделать интерфейс без лишних полей подтверждения, и потом опросить пользователей, было ли неудобство какое-то. Скорее всего проблем не будет. Вот именно, что пытаются сделать интерфейсы для идиотов, которых среди посетителей и нет вовсе, а если они даже есть, то им любой интерфейс будет тяжело освоить, тем более что они печатают плохо, наверняка ошибутся или раскладкой, или капсом, чего подтверждение ввода пароля не выявит.
Пожалуй попробую в новом проекте отказаться от повторного ввода пароля, лучше сделаю галочку «показать пароль».
Про одно поле — думал так тысячу раз, приятно было увидеть, что я не один задумывался над подобным упрощением.
Еще непонятно вот что: Везде, где надо вводить пароль есть ссылка «Прислать на e-mail ссылку для сброса пароля» Почему не делают такую же ссылку для авторизации, когда, например, я за другим компьютером — это же крайне удобно!
Почта, логин, пароль — если сервис будет что-то слать на почту
Логин, пароль — если не будет
+ возможность авторизации с помощью openid и oAuth.
Повтор пароля/почты/etc — ужасен и его точно не надо использовать
Выше предлагали только почту, потом через ссылку в письме вводить логин и пароль. Этот способ тоже в чем-то прекрасен.
Каптча — не нужна. Либо показывать только после нескольких регистраций с одного IP/попыток залогинится с одним логином.
Насчет ЧПУ. Можно сделать example.com/username, username.example.com, example.com/?username, example.com/users/username — остальные варианты непривычны/ужасны. В любом случае, чем ссылка короче, тем лучше.
с ЧПУ есть нюанс, что его нужно привязывать к полю, с которым не может играться пользователь, иначе поисковикам не понравится.
То есть если пользователь может менять свой юзернейм, то ЧПУ лучше привязать к айдишнику.
Не надо давать пользователю менять ник. В любом сообществе возникнет путаница. Представьте, что завтра Boomburum внезапно станет -=$God_of_the_Disko$=-. Ничего хорошего смена ников не дает. Хочешь новый ник — зарегься заново.
Обязательные поля при регистрации