Pull to refresh

Comments 121

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

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

Ограничение на максимальную длину пароля тоже встречал, но только в виде предупреждения. Типа «вы набирайте, сколько хотите, но учтите, что в зачёт идут только первые N символов». Плохо, конечно, но лучше, чем если бы тупо запрещался ввод лишних символов.
«сам себе злобный буратино» :)
UFO just landed and posted this here
По секрету скажу. В конце первого курса (ИТМО) мы делали курсач: 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 года не жаловались ни разу.
Хабрапарсер считает, что тильды в ссылках не бывает? :)
очень читабельный регекс, надо заметить.
и если на него кто-то пожалуется, разработчику будет очень легко сделать в нем правку.
а давно у нас появились домены со знаком подчеркивания?
Ох, не прав!
Показал я её ради дельных замечаний, и я таки получил :) Спасибо!
о, хломзик ты. френдю :)
проблема авторов исключительно в любви к велосипедостроению.
когда используется готовое проверенное решение, таких проблем быть не может. главное прочесть документацию ДО написания.
к сожалению велосипеды и документация не дружат :)
документация и есть велосипед)
согласен. Я не могу зарегистрироваться на некоторых сайтах с адресом ...@hi-fi.ru — из-за дефиса. Например, на panasonic.ru :)
UFO just landed and posted this here
Скажем, что через «е» ;)

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

В данном конкретном случае НЕ_ПРАВИЛЬНЫЕ пишется слитно.
Противопоставление с союзом А есть, и Вы правильно его заметили, написав НЕ_ЖЕСТКИЕ раздельно(хотя всё-таки Ё нужно использовать), но это правило описывает правописание с НЕ до союза, а не после.
На не гиковских сайтов подобная забота о пользователе всегда оправдана. Отсосёт один гик, зато десяток обычных пользователей смогут воспользоваться функцией и в результате принесут деньги проекту. А недопуск некоторых спецсимволов в адресе почты — это, конечно, ошибка.
Похоже, гикам ваши мысли не понравились :)
Я особо и не сомневался. Гики редко когда думают о бизнесе, а не о себе.
Ещё дополнение: практически невозможно использовать 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 :)
UFO just landed and posted this here
Ну да, это (скорее всего, хотя возможны варианты) южнокорейский вариант фамилии Ли.
UFO just landed and posted this here
как же она мучается по жизни.
любая ситуация, где надо указать фамилию, ставит в ступор окружающих.
сменила бы она ее на «иванова», и никто бы не замечал ее фамилию.
UFO just landed and posted this here
Прочитайте ещё раз текст.
UFO just landed and posted this here
Прочтите внимательно то что написал автор. Проблема не в названии домена, а в фамилии лица, на кого регистрируется домен.
Да каждая вторая корейская фамилия в русской транскрипции будет короткой:
Ли, Ким, Пак, Но, Со, Ан и тп. и тд.
Ну, у нас чувак работал, фамилие у него было односимвольное — У. Тоже нереально везде мучился при регистрациях…
Какой национальности девушка?
какое это имеет значение?
и даже если это парень.
Аналогично. У меня в названии улицы есть дефис — на сайте провайдера не могу оставить заявку на подключение.
Домен моей электропочты оканчивается на .net.ru — его тоже некоторые системы отшивают.

Кстати, насчёт адресов. Говорят, есть какой-то официальный справочник всех почтовых адресов, с описанием системы именования. 99% всех адресов легко можно описать с помощью системы «область — город — улица — дом — корпус — квартира». Но оставшийся один процент тааакой разнообразный, начиная с в/ч и заканчивая научными станциями…
Это ещё там, где есть разные посёлки (городского типа, сельское муниципальное образование) и т.п., но просто «посёлка» нет? :) ОКАТО, ЕМНИП.
ООО наболело. однажды я не мог зайти на один сайт, так как разработчики автоматом удаляли "-" (тирэ) из пароля при регистрации, и не уведомляли об этом пользователя.
За такое надо расстреливать.
не надо.
просто выдергивать одно яичко.
в целях сохранения второго, разработчик будет думать, прежде, чем кодить.
UFO just landed and posted this here
UFO just landed and posted this here
А ведь как, на самом деле, просто сделать проверку на корректность е-mail address:
ex-parrot.com/~pdw/Mail-RFC822-Address.html
Нельзя использовать эту регулярку в веб-проектах. Там например очень большой диапазон допустимых символов, допустимы одноуровневые домены и т.п.
Просто такие призывы иногда воспринимаются серьёзно ;)
UFO just landed and posted this here
это мне напоминает пятизначковые аськи :)
а вот я не могу ее использовать.
потому как, я хочу понимать, что я использую.
а чтобы эту регулярку понять, надо потратить несколько часов в пустую, и потом всеравно напишешь свою на 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 нравится, а потому что для этого поля это логически обоснованный размер и пользователю, у которого нет цели ломать твою систему, даже в голову не придет вбивать туда что-то более длинное. Чисто технически твои проверки будут работать правильно, но сейчас речь не о проверках, а о юзабилити.
UFO just landed and posted this here
Для gmail можно смео опускать точку в emaile, каквпрочем можно её ставить в любой позиции
Я недавно пытался через GMail отправить письмо на адрес: info@кирилический-домен.com, так там вылезло сообщение о недопустимых символах, пришлось в Firefox переходить по доменному имени, чтобы преобразовать в формат вида info@xn--….com.
В примере с имейлами, дело не в «слишком строгой» проверке, а в незнании разработчика.
UFO just landed and posted this here
Вы очень вежливы! Все приводимые примеры не есть «слишком жёсткая проверка», а типичный идиотизм, который следует именно этим словом и назвать.
Да! Да!
Вообще, есть мнение, что формы суть необходимое зло. Пользователь вынужден заполнять одни и те же нелепые поля от сайту из-за отсутствия подходящих технологий.
Любое усложнение жизни пользователя — это очень плохо. Конечно, иногда это необходимо, но зачастую любые ограничения являются следствием несовершенства технологии.
QIWI(исправьте а?) тоже с этой темой перемудрили, не помню толком уже зачем, но
требовалось установить пароль, причём в форме ввода стоял какой-то мега «датчик» определения уровня надёжности, который должен быть зелёным(кстати у меня проблемы с различением цветов и зелёный было очень проблематично разглядеть)
так вот, найти компромисс между лаконичностью и чёртовым датчиком казалось безумно трудно, достаточно сложные пароли не проходили, как выяснилось система уделяла большое внимание длине пароля
и что вы думаете? — Мой номер телефона, который является по сути логином, отлично подошёл как пароль.
как вам позвонить? :)
Результатом такой заботы обычно является то что система восстановления пароля не простаивает :)
Большинство паролей уводят по вине самого пользователя(вводит не там где надо, открыто хранит) так что сложность пароля тут только вредит.

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

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

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

Articles