Comments 22
Капча на то она и капча — чтобы защиттить от брутфорса при подборе пароля. Моё предложение лучше — капчу выводить только если хотябы однажды за сутки был неудачный логин.
ТЕ делаем вход, вводим логин пароль, если все нормально — залогиниваемся. ежели нет — целый день изволь входить по капче для этого логина (это уже для безопсаности)
ТЕ делаем вход, вводим логин пароль, если все нормально — залогиниваемся. ежели нет — целый день изволь входить по капче для этого логина (это уже для безопсаности)
отлично. как раз это уже практикуется интернет-гигантом Гуглем. правда там 3 раза, кажется.
Так какой смысл в капче, если один раз я ее успешно ввел? Естественно нужно сделать ограничение на время сессии, то есть по прошествии определенного периода вновь показывать и отображать при явном подборе — большом количестве запросов в малое время.
Так какой смысл в капче, если один раз я ее успешно ввел?Ну как же вы не понимаете. Один раз её правильно ввели Вы, а дальше пароли подбирать будет робот.
Например, можно сделать ограничение на количество попыток ввода в секунду. Если больше чем одна попытка, то отображать картинку, а если меньше то пускай человек вводит.
Просто я предлагаю сделать механизм чуть сложнее, оценивая кто пытается войти и если это человек, то не усложнять ему тривиальную операцию входа.
Просто я предлагаю сделать механизм чуть сложнее, оценивая кто пытается войти и если это человек, то не усложнять ему тривиальную операцию входа.
Shoohurt писал
При этом используют прокси, посылают запросы не по сто раз в секунду, а как положено — с задержкой.
А если с разных ип брутить разные аккаунты? С вашим вариантом эта задача становится выполнимой.
А что будет если с разных ip брутфорсить разные аккаунты? В этом случае капча должна появится по двум причинам: большое количество обращений на логин и разные ip с которых осуществляется вход.
Представляете, капча и сейчас отображается при входе разных пользователей с разных айпи. В чем различие?
В том, что большинство пользователей имеют один ip (даже если у них dial-up или что-то, где ip не постоянен) в течении времени, пока они пытаются войти на сайт.
Поэтому можно сохранить пару логин-ip при первой попытке входа с неправильным паролем но верно введенной капчей, и отобразить форму повторного входа уже без картинки.
Поэтому можно сохранить пару логин-ip при первой попытке входа с неправильным паролем но верно введенной капчей, и отобразить форму повторного входа уже без картинки.
Мне кажется, что запоминать правильность каптчи — дохлый номер, так или иначе эти сведения можно передать роботу. Нужно наоборот, показывать каптчу при неудачной попытке логина за последний час, день, 20 минут.
Я уже понял что мое предложение не пройдет, но все-таки отвечу :)
Даже если ввести первую капчу руками, а затем подключить робота, система не должна давать ему возможности делать больше чем определенное число запросов в секунду, а это равносильно перебору в ручную.
При использовании проксей, не совпадет пара логин-ip, и соответственно нужно будет вводить капчу.
Но повторюсь, такое решение является самым простым. Я лишь хочу сказать, что та капча, что есть сейчас, очень сложная (именно для человека) и при ее вводе очень велик процент ошибок.
Даже если ввести первую капчу руками, а затем подключить робота, система не должна давать ему возможности делать больше чем определенное число запросов в секунду, а это равносильно перебору в ручную.
При использовании проксей, не совпадет пара логин-ip, и соответственно нужно будет вводить капчу.
Но повторюсь, такое решение является самым простым. Я лишь хочу сказать, что та капча, что есть сейчас, очень сложная (именно для человека) и при ее вводе очень велик процент ошибок.
робот сессию может не сохранять, т.е. просто не брать куки.
прокси + неверные кукис… и как тогда определять, что пароль был введён неправильно?
Поле LastLoginTry в таблице Users?
Не совсем понял вопрос — куки тут даже необязательно ставить.
Самый простой вариант реализации выглядит следующим образом. Человек авторизуется вводя логин, пароль и капчу. Система запоминает логин и ip. Если пароль не верен (не подходит к логину), а с капчей все ок, то отображаем форму (указывая что пароль ошибочен) без нее. Если запрос приходит с того же ip что и в предыдущий раз, то все ок, иначе — капча.
Если у пользователя при каждом новом обращении к серверу меняется ip, то что поделаешь, придется ему каждый раз вводить капчу.
Самый простой вариант реализации выглядит следующим образом. Человек авторизуется вводя логин, пароль и капчу. Система запоминает логин и ip. Если пароль не верен (не подходит к логину), а с капчей все ок, то отображаем форму (указывая что пароль ошибочен) без нее. Если запрос приходит с того же ip что и в предыдущий раз, то все ок, иначе — капча.
Если у пользователя при каждом новом обращении к серверу меняется ip, то что поделаешь, придется ему каждый раз вводить капчу.
Угу, один раз ввел капчу вручную, а потом врубай брутфорс.
Капча скоро будет определяться ботом лучше чем человеком. И это будет доступно.
Имхо не надо ленится и игнорировать другие способы защиты от брут-форса, подсматривание и увод пароля/куки: удлинение сессии, лимит на попытки, отслеживание адресов входа и прочее
Имхо не надо ленится и игнорировать другие способы защиты от брут-форса, подсматривание и увод пароля/куки: удлинение сессии, лимит на попытки, отслеживание адресов входа и прочее
намучившись с официальным входом теперь вхожу через письмо-нотификацию.
экономия времени значительна.
экономия времени значительна.
если не видишь каптчу — жми обновить, опять не видишь — очки тебе в помощь
Sign up to leave a comment.
Предложение по улучшению интерфейса входа на Хабр