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

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

Мне чаще всего попадаются нелепейшие условия для пароля. На некоторых сайтах в пароле требуется хотя бы одна и цифра и один из символов, не относящихся к буквам и цифрам, на других сайтах — подобные символы запрещены; в отдельных случаях — встречался с запретом на русские буквы, хотя худшее что видел — низкое (8-12) ограничение по максимальной длине пароля.
Да обычно проверки-то неплохие, неглупые, в том числе условия для пароля. Только на мой взгляд, гораздо лучше те же условия делать рекомендациями, а не жёсткими ограничениями. Предупредили? Предупредили. Не послушался — сам себе злобный буратино.

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

Ограничение на максимальную длину пароля тоже встречал, но только в виде предупреждения. Типа «вы набирайте, сколько хотите, но учтите, что в зачёт идут только первые N символов». Плохо, конечно, но лучше, чем если бы тупо запрещался ввод лишних символов.
«сам себе злобный буратино» :)
НЛО прилетело и опубликовало эту надпись здесь
По секрету скажу. В конце первого курса (ИТМО) мы делали курсач: php, oracle, html, css. Я делал примитивную систему документооборота, большая часть — электронные магазины, кто-то — системы управления сотрудниками (увольнение, выдача зарплат, и т.п.). Так вот почти у всех длина пароля была ограничена 30 символами. Просто потому, что это было очень привычное значение для ограничения длины поля :)

:-)
худшее что я видел — пароль состоящий только из цифр и не более 6.
Всё, что Вы перечислили — это ошибки разработчиков. В первом и третьем случаях, скорее всего, применено некорректное регулярное выражение (для проверки e-mail их написано превеликое множество, одно другого «страшнее»). Второй случай точнее подпадает под определение «хотелось как лучше — получилось как всегда», но и это, по сути, ошибка проектирования пользовательского интерфейса.
Мало того, что все доступные регулярки просто убогие, так и правильной не найти.
Вот мой вариант:
/^[a-z\d][a-z\d_\-\.+]*@(?:[a-z\d][a-z\d\-_]*\.)+[a-z]{2,6}$/i

иногда, правда, я забывал про однобуквенные слова… и за доменами первого уровня никогда не угонишься, может проще [a-z]{2,} использовать.
Учитывая, что в ближайшее время вроде бы начнется свободная регистрация доменных зон, на будущее лучше делать именно так.
Ого, безбашенное нововведение! Буду учитывать.
откуда такая информация? я правильно понял, что имеются ввиду домены первого уровня? О_о
а вот мой для php
filter_var($mail, FILTER_VALIDATE_EMAIL)
Правильно — по RFC 2822 «Internet Message Format», там по цепочке определений «local-part → dot-atom → dot-atom-text → atext» приходим к тому, что в части адреса до @ можно использовать и такие символы, как !,#, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, }, ~.
Так-то!
Именно. Перлистам на заметку: проверка на соответствие RFC есть в cpan-модуле Email::Valid. Кастомеры за 4 года не жаловались ни разу.
www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Хабрапарсер считает, что тильды в ссылках не бывает? :)
очень читабельный регекс, надо заметить.
и если на него кто-то пожалуется, разработчику будет очень легко сделать в нем правку.
а давно у нас появились домены со знаком подчеркивания?
Ох, не прав!
Показал я её ради дельных замечаний, и я таки получил :) Спасибо!
о, хломзик ты. френдю :)
проблема авторов исключительно в любви к велосипедостроению.
когда используется готовое проверенное решение, таких проблем быть не может. главное прочесть документацию ДО написания.
к сожалению велосипеды и документация не дружат :)
документация и есть велосипед)
согласен. Я не могу зарегистрироваться на некоторых сайтах с адресом ...@hi-fi.ru — из-за дефиса. Например, на panasonic.ru :)
НЛО прилетело и опубликовало эту надпись здесь
Скажем, что через «е» ;)

Ужасное ограничение, если сервис не особо важного значения. Да и то чересчур, сложный пароль и из одних букв может быть.
НЛО прилетело и опубликовало эту надпись здесь
Тогда получите:
Sorry, your password is computable in exponential time and is not random.
Не прокатит, нет специальных символов )
НЛО прилетело и опубликовало эту надпись здесь
Подчёркивания относятся к символам, образующим «слово». Т.е. это не совсем специальные символы.
ох, а сколько людей вводят www. перед е-мейлом… и непонятно, то ли он так зарегал, то ли считает, что перед всеми адресами надо вводить вэвэвэ.
похоже, пора уже почтовым системам поддерживать такие алиасы на автомате :)
Ненадо, тогда они будут еще больше плодиться.
офтоп: ник у автора забавный (:
Это не жесткие проверки, а не правильные. :)
Я даже не буду писать, что я зануда. И прощения за оффтоп просить тоже не буду.

В данном конкретном случае НЕ_ПРАВИЛЬНЫЕ пишется слитно.
Противопоставление с союзом А есть, и Вы правильно его заметили, написав НЕ_ЖЕСТКИЕ раздельно(хотя всё-таки Ё нужно использовать), но это правило описывает правописание с НЕ до союза, а не после.
Grammar nazi
На не гиковских сайтов подобная забота о пользователе всегда оправдана. Отсосёт один гик, зато десяток обычных пользователей смогут воспользоваться функцией и в результате принесут деньги проекту. А недопуск некоторых спецсимволов в адресе почты — это, конечно, ошибка.
Похоже, гикам ваши мысли не понравились :)
Я особо и не сомневался. Гики редко когда думают о бизнесе, а не о себе.
Ещё дополнение: практически невозможно использовать email с IP вместо доменного имени (user@92.155.255.100).
ну наверное потому что сайт может переехать и поменять айпишник и тогда с таким мылом вы окажитесь в заднице :)
Это не в интранете? =О.о=
Зачем вам такое мыло, если не секрет?
У меня такого мыла нет, но разные бывают ситуации.
К примеру, сайт переехал на другой хостинг, а ДНСы ещё не заработали или если провайдер выделил статический IP, то вполне можно настроить локально почтовый сервер и получать почту непосредственно на свою машину — привызывать доменное имя к локальному компьютеру особого смысла нет.
Это еще что у меня раньше домен как IP был

v.z.tcx-il@mail.support.force-edition.com

С таким мылом мне удалось зарегистрироваться на двух сайтах из ста желаемых…
где такие одноразовые мыла раздают? :)
Вот пример по-настоящему жёстких проверок:

www.thedailywtf.com/Comments/Password-Pain.aspx

(Не забудьте там нажать «[expand full text]», чтобы прочесть полный текст.)

Для не знающих английского языка переведу.

Сперва выпрыгивает сообщение: ваш пароль должен быть длиной не больше 0, содержать не меньше 109 алфавитных символов, не меньше 68 цифр, не меньше 101 специального символа.

Когда пользователь наконец извратился и придумал и ввёл соответствующий пароль, ему выпрыгивает ошибка: пароль не может быть длиннее 256 символов.
Опечатка. Вместо «длиной не больше 0» следует читать «длиной не меньше 0».
Поделитесь, если не секрет, какая фамилия вашей девушки меньше трех символов? :)
Самая короткая фамилия из моих знакомых — Хань.
Первое, что припоминается — художник Николай Ге. Вот вам двухбуквенная фамилия.
Мне первой вспомнилась фамилия Ли.
Почему никто не вспомнил писателя Эдгара По? :)
Еще есть Ан, Дё, Лю. Корейцам в этом плане повезло :) Хотя Лю считается китайской фамилией.
Нааверное потому, что он — Edgar Allan Poe :)
НЛО прилетело и опубликовало эту надпись здесь
Ну да, это (скорее всего, хотя возможны варианты) южнокорейский вариант фамилии Ли.
НЛО прилетело и опубликовало эту надпись здесь
как же она мучается по жизни.
любая ситуация, где надо указать фамилию, ставит в ступор окружающих.
сменила бы она ее на «иванова», и никто бы не замечал ее фамилию.
НЛО прилетело и опубликовало эту надпись здесь
Прочитайте ещё раз текст.
НЛО прилетело и опубликовало эту надпись здесь
Прочтите внимательно то что написал автор. Проблема не в названии домена, а в фамилии лица, на кого регистрируется домен.
Да каждая вторая корейская фамилия в русской транскрипции будет короткой:
Ли, Ким, Пак, Но, Со, Ан и тп. и тд.
Ну, у нас чувак работал, фамилие у него было односимвольное — У. Тоже нереально везде мучился при регистрациях…
А звали его Весельчак? :)
Какой национальности девушка?
какое это имеет значение?
и даже если это парень.
Аналогично. У меня в названии улицы есть дефис — на сайте провайдера не могу оставить заявку на подключение.
Домен моей электропочты оканчивается на .net.ru — его тоже некоторые системы отшивают.

Кстати, насчёт адресов. Говорят, есть какой-то официальный справочник всех почтовых адресов, с описанием системы именования. 99% всех адресов легко можно описать с помощью системы «область — город — улица — дом — корпус — квартира». Но оставшийся один процент тааакой разнообразный, начиная с в/ч и заканчивая научными станциями…
Это ещё там, где есть разные посёлки (городского типа, сельское муниципальное образование) и т.п., но просто «посёлка» нет? :) ОКАТО, ЕМНИП.
ООО наболело. однажды я не мог зайти на один сайт, так как разработчики автоматом удаляли "-" (тирэ) из пароля при регистрации, и не уведомляли об этом пользователя.
За такое надо расстреливать.
не надо.
просто выдергивать одно яичко.
в целях сохранения второго, разработчик будет думать, прежде, чем кодить.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
А ведь как, на самом деле, просто сделать проверку на корректность е-mail address:
ex-parrot.com/~pdw/Mail-RFC822-Address.html
Нельзя использовать эту регулярку в веб-проектах. Там например очень большой диапазон допустимых символов, допустимы одноуровневые домены и т.п.
Просто такие призывы иногда воспринимаются серьёзно ;)
НЛО прилетело и опубликовало эту надпись здесь
это мне напоминает пятизначковые аськи :)
а вот я не могу ее использовать.
потому как, я хочу понимать, что я использую.
а чтобы эту регулярку понять, надо потратить несколько часов в пустую, и потом всеравно напишешь свою на 2 порядка короче и понятней.
Чаще всего сталкиваюсь с двумя типами ограничений:
1. Нельзя использовать логин короче Х символов (например, в гугле, нельзя испольовать логин короче 6-и символов). Приходится извращаться со своим ником.
2. Нельзя использовать спец.символы в пароле (вообще жутчайшая глупость).
Обратите внимание на то, что с установкой пакета обновления SP1 число требуемых символов изменяется от 17145 до 18770.
домен безопасносте!
а ещё в фамилиях бывают дефисы (у меня одногруппник был, у него фамилия Тер-Галустов)

и офтоп про фамилии и цензуру (нельзя регить admin, administrator и т.п. цензуру):
в институте училась девушка с фалимией «Непейпиво» :)

PS: не минусуйте за офтоп, и так карма отрицательная :)
Видимо кто-то из предков в свое время переусердствовал с пивом :)
… и его качественно закодировали, на многие поколения вперёд :)
Блин, у меня знакомый был Костогрыз.
Да на каждом втором корейском сайте длина имени не может превышать 8 символов: в Корее не бывает имен длиннее 4 слогов, а каждый слог кодируется двумя латинскими символами.

Естественно подумать о том, что есть страны где имена могут быть длиннее им не приходит в голову :)
Точно! На Сайте МТС не мог свое мыло с "." зарегать. Бред!
Ага, а когда многие службы не дают зарегиться, если мыло на бесплатном ящике? Хорошо еще что мало какой из таких сайтов знает про все 5 алиасов почты яндекса.

Вчера столкнулся с хаброглупостью — залогинился, мне выдало «смените пароль», причем мне пришлось опять вводить только что введеный пароль от хабра. Ну, поменял пароль, потом поменял еще раз и вернул старый (ну удобно мне так). Что за принуждение юзеров?

Когда требуют обязательно цифры использовать — тоже не понимаю…
Неприятие бесплатной почты часто объясняют тем, что их письма туда просто не доходят. Но, конечно, какое пользователю дело до их проблем.
Ну тут приходится выбрать: баловать ботов или пользователей )))
Если использовать gmail, то можно игнорировать точки внутри логина.

mail.google.com/support/bin/answer.py?hl=ru&ctx=mail&answer=10313#
Полезно, спасибо, буду знать.
не только игнорировать, но и вставлять произвольное кол-во внутри :)
было: azazel.tap@gmail.com
может быть: a.z.a.z.e.l.t.a.p@gmail.com
кстати это позволяет несколько раз зарегистрироваться на сервисе, который говорит «на такой email уже зарегистрирован аккаунт», а вам не хочется делать еще одно липовое мыло для регистрации.

просто ставите точки в email и все =)
ну или вместо gmail.com -> googlemail.com
Вся фигня со спецсимволами заключается в боязне программеров sql-иньекций.
А правильно экранировать выражение — надо мозг применять, а не шаблон.
Такое вот имхо.
Вообще-то проблема SQL-инъекций решена лет 20 назад использованием prepared statements-подобного синтаксиса для запросов (или всяких active record'ов).
Возможно я неправ. Но обилие разного рода статей и гайдов показывает что противоинъекционная тема все еще актуальна.
Более того, большинство статей по теме, что я видел, как раз рекомендовали все подозрительные символы фильтровать, что и вызвало негодование аффтара.
Особенно для php-программистов, пишуших свои CMS, использующие стародревние mysql_*, ибо ничего другого может и не быть…
А мы говорим о проверке вводимых данных с точки зрения валидации данных, или с точки зрения бизнесс правилах приложения?

Например, отклонение ввода слишком простых паролей — это требование уровня бизнесс правил, конкрентнее — правил безопасности принятых в системе.

А вот отклонение ввода слишком длинных имен — это требование продиктованное технической реализацией. Например в базе данных под некое поле отведено всего N байт.

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

Говоря проще, если я делаю поле в базе 20 байт, я проверяю что данные пришли не больше. Если я добавляю в дальнейшем код, который делает разбор или анализ сожержимого, я добавляю проверку во входной точке, что данные соотвествуют моим предположениям.
Если ты делаешь поле в 20 байт, ты должен быть уверен что ни один разумный человек(не злоумышленник) не будет пытаться ввести туда значение большего размера.
А не все ли равно, злой или не злой, умышленно или неумышленно, человек или робот будет пытаться ввести данные? ;)

Да, просто проверка, и всё, я уверен что данные не превышают максимальный размер.
Я так понимаю имелось в виду то, что поле 20 байт не потому что тебе цифра 20 нравится, а потому что для этого поля это логически обоснованный размер и пользователю, у которого нет цели ломать твою систему, даже в голову не придет вбивать туда что-то более длинное. Чисто технически твои проверки будут работать правильно, но сейчас речь не о проверках, а о юзабилити.
НЛО прилетело и опубликовало эту надпись здесь
Для gmail можно смео опускать точку в emaile, каквпрочем можно её ставить в любой позиции
Я недавно пытался через GMail отправить письмо на адрес: info@кирилический-домен.com, так там вылезло сообщение о недопустимых символах, пришлось в Firefox переходить по доменному имени, чтобы преобразовать в формат вида info@xn--….com.
В примере с имейлами, дело не в «слишком строгой» проверке, а в незнании разработчика.
НЛО прилетело и опубликовало эту надпись здесь
Вы очень вежливы! Все приводимые примеры не есть «слишком жёсткая проверка», а типичный идиотизм, который следует именно этим словом и назвать.
Да! Да!
Вообще, есть мнение, что формы суть необходимое зло. Пользователь вынужден заполнять одни и те же нелепые поля от сайту из-за отсутствия подходящих технологий.
Любое усложнение жизни пользователя — это очень плохо. Конечно, иногда это необходимо, но зачастую любые ограничения являются следствием несовершенства технологии.
QIWI(исправьте а?) тоже с этой темой перемудрили, не помню толком уже зачем, но
требовалось установить пароль, причём в форме ввода стоял какой-то мега «датчик» определения уровня надёжности, который должен быть зелёным(кстати у меня проблемы с различением цветов и зелёный было очень проблематично разглядеть)
так вот, найти компромисс между лаконичностью и чёртовым датчиком казалось безумно трудно, достаточно сложные пароли не проходили, как выяснилось система уделяла большое внимание длине пароля
и что вы думаете? — Мой номер телефона, который является по сути логином, отлично подошёл как пароль.
как вам позвонить? :)
Результатом такой заботы обычно является то что система восстановления пароля не простаивает :)
Большинство паролей уводят по вине самого пользователя(вводит не там где надо, открыто хранит) так что сложность пароля тут только вредит.

Общался тут недавно с владельцем местного турагенства, выяснилось, что многие системы он-лайн бронирования туров так устроены что они автоматически выдают пользователю логин и пароль, причём логин это первые 6 символов названия турфирмы а пароль по рандуму. Такую же систему он просил и для себя, мол так все делают и всем это очень удобно.
— Так почему бы не дать возможность пользователям самим задавать пароли?
— да неет, что они там, какую-нибудь ерунду введут, а патом будут жаловаться на нас если их поломают, а так смотри,
* заходит в папку на «пароли» рабочем столе с кучей документов по названию сайтов, открывает один из них в котором красуется 9ти значная билеберда
— такой пароль уж точно фиг подберёшь! )))

Сложный пароль к сожалению приходится где-то записывать из-за сложности запоминания, а при таком способе хранения он его надёжность значительно понижается.
иногда ограничения бывают слишком жесткими только потому, что мягкие сложнее реализовать, как это ни парадоксально звучит
> с адресом имя.фамилия@gmail.com

Вообще-то точку можно не ставить в адресе на gmail :) И наоборот — ставить несколько в любых местах.
Категорически поддерживаю! Сам неоднократно спорил до хрипоты со своими коллегами: лучше с риском бардака дать больше свободы пользователю, чем бесить его глупыми ограничениями стандартизации!
Раздражают сервисы, где в имени пользователя не допускается точка (нельзя сделать имя.фамилия). А ещё есть такие (например регистрация ноута в Toshiba) где в названии фирмы нельзя использовать точки (при том, что в моей стране в названии любой фирмы всегда содержится не менее двух точек.)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории