Pull to refresh

Comments 31

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

Ухты, какие у вас отступы в коде.
Согласен, но я просто проиллюстрировал задумку, показав легкость её реализации. Вы можете использовать данную схему, к примеру, при регистрации (все зависит от фантазии).
Я делал скрипт для сайта, где зная логин и пароль пользователя — Вы сможете узнать его оценки в тестах и ничего более, поэтому считаю его уместным.

PS На самом деле, отступы размером в одну табуляцию, просто копировал напрямую с программы(Notepad++), видимо так вставилось :)
Еще комментарии:
— почему бы не использовать классы вместо $.fn.css?
— если все же $.fn.css, то можно сделать код приятнее, совместив их в конструкции вида $.fn.css( { a: 'b', c: 'd', 'e-f': 'g' });
— алерт при ошибке очень расстроит пользователя, которому не очень-то и нужна была ваша подсказка
— ник можно заполнить не только нажимая на клавиши – не забываем про буфер обмена и мышку
— у вас в php-коде ерунда маленькая: $_POST[login] => $_POST['login']
— вам бы SQL подучить: вы достаете из базы всех пользователей (допустим, их миллион), передаете всех (миллион) в php и проходитесь по всем (по миллиону) циклом. Посмотрите SELECT… FROM… WHERE

Советы не в обиду, карму от меня вы все равно получили. Успехов!
Я сюда и пришел за поправками и критикой, т.к. учусь всему сам.
Спасибо за советы, особенно важным оказался про Sql, поправил:
SELECT `login` FROM `users` where `login` = '".$login."'" 

Вроде как логично, хотя в 2:30 ночи ничего утверждать не буду ^_^
Учусь-всему-сам – это очень похвально, я сам начинал всему-сам лет в 13 по низкопробным распечаткам мануалов по HTML и JavaScript. Но с тех самых пор мои проблемы решались поиском и чтением документации и элементарных туториалов.

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

Простите за искренность. Советую много читать (и комментировать) – здесь можно здорово вырасти. Но вырасти только при наличии базовых знаний.
А еще здесь много грамматических нацистов :)
И еще больше неграмотных людей.
Причём у меня иногда создаётся впечатление, что все пользователи Хабры делятся на эти две категории :)
Поздравляю, вы получили SQL injection!
Надо экранировать строки, передаваемые в БД, а лучше пользоваться специальными интерфейсами для подстановки параметров в запросы.
image
Если вы в процессе обучения «всему» сами, то почему бы для начала не посидеть и почитать статьи, а не начинать их писать? Простите, но это ужасно.
В notepad++ есть возможность заменить табуляцию на пробелы.

Для html и js — отступов много, очень удобно, когда по табу добавляется всего два пробела.
UFO landed and left these words here
С отступами и скобками мне удобней (на вкус и цвет).
Про animation слышал и даже накатал скриптик
Как учебный пример, это конечно, круто.

Но на реальный сайт такое ставить нельзя, с точки зрения безопасности.

Это вы злоумышленнику сами даете прекрасный инструмент для брутфорса аккаунтов.

Сообщения об ошибке «Вы ввели неправильное имя или пароль» придумали не дурные программисты, которые не смогли определить, что же было неправильно введено — имя или пароль. Это как раз и есть самое действенное средство от брутфорса акков.
Плюс нифиговая такая нагрузка на сервер — при каждом keyup посылать запрос на сервер. Сделали бы хотя бы запрос по таймауту, который обнуляется при нажатии на клавишу
*нефиговая, простите, опечатался
Уже не первый месяц использую в своих проектах очень-очень похожий метод.
Только я не стал изобретать велосипедиков и написал метод ajax-валидации для jQuery plugin: Validation.

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

Если интересно, могу написать про это топик, но там от силы 30 строк на метод плюс еще немного на ajaxHandler.
По моему материал слишком простой чтобы писать целую статью. Советую снять его с публикации дабы не внушать людям прочитавшим его неправильных идей.

Итак приступи к критики, хотя много уже сказано выше:
1) О необходимости использовать классы уже писали и они правы css в js это на крайний случай.
2) наверное не очень хорошо позволять простым перебором получать ники юзеров
3) как и говорили грузить сервис такими запросами это кощунство.
4) авторизацию хорошо бы делать оп https ваш скрипт такое не сможет
5) не стоит писать подобное в js, кода надо структурировать, просто навешивать ивент и прямо туда код — на проекте в 10 страничек вы запутаетесь.

ну и просто критика юзабилити, откуда вообще идея проверять логин по нажатию кнопки? Какой сакральный смысл в этом?

Моё имхо в этом топике к велосипеду поставили квадратные колёса и причем поставили криво!
Данный подход лучше применять в различных формах ввода данных, для подсветки обязательных полей (если пользователь вдруг что-то пропустил).
Все классно, но извините, при 100 000 пользователях, и при активной регистрации хотя бы 100 человек ваш сервис упадет (на слабом железе). Например, при хабраэффекте
лучше добавил бы сразу "..WHERE login =… LIMIT 1;" и потом сравнивал пароли.

да и keyup это жжесть. при логине длиной 10 букв, будет 10 запросов. зачем?
limit лишний, т.к. login очевидно уникальный
Могу ошибаться, но лимит может остановить процесс дальнейшего перебора по таблице, если колонке не установлен unique.
Если есть подозрения в компетентности разработчика, наверное, стоит ему подсказать про индексы и т.п., а не костыли предлагать…
этот код:
data : {login : login_user},

не будет работать в старых ИЕ
чур Вас, не нужны нам старые ie, пора уже идти к светлому HTML5.
Зачем надо было использовать $.ajax? В вашем случае куда удобнее воспользоваться $.post
В чем заключается принципиальная разница для вас? Если один метод является алиасом другого… На мой взгляд, это уже излишний педантизм и придирки к коду. Лучше бы кто-нибудь обратил внимание, что человек не умеет с ассоциативными массивами работать:

$_POST[login]

При таком использовании PHP выбросит E_NOTICE и засорит память лишней константой.
Я обратил, но автора, похоже, расстроила встреча и он решил ничего не исправлять
Вчера исправил в свое коде, и забыл про пост.
Прошу прощения, только что исправил.
Sign up to leave a comment.

Articles