Защита от подбора пароля.

Vladson

Сильнобухер
>>> считать что баг сугубо в phpBB, также смешно как считать sql-инъекцию багом только phpBB
Именно, так я и считаю, (я просто сказал что часто встречаюсь с людьми которые готовы считать sql-инъекцию багом только phpBB) однако речь не о том, а о том что факт остаётся фактом, подделка X_FORWARDED_FOR очень реальное явление и в паре с провайдерами предоставляющими один IP многим людям бан как таковой считается больше историческим фактом чем мерой ограничения...
 

kruglov

Новичок
Vladson
бан по X_FORWARDED_FOR так-же не возможен (точнее возможен, но не имеет смысла) так как он в свою очередь подделывается не труднее чем UserAgint
X_FORWARDED_FOR подделывается легко, но легко ли подделывается связка REMOTE_ADDR + X_FORWARDED_FOR целиком ?

Если я подделаю себе X_FORWARDED_FOR и полезу через тот эстонский прокси, он оставит мой выдуманный X_FORWARDED_FOR в неприкосновенности?
 

Vladson

Сильнобухер
Хорошо, защитишься ты от эстонского прокси, а что делать с остальными "взломщиками" ?
 

betik

Новичок
что-то вы не в ту степь полезли, ИМХО.

Проксей этих 1000 штук можно купить за 5-15 баксов с реальными айпи ОБЫЧНЫХ ЮЗЕРОВ, которые ничего абсолютно не передают и выглядят в основном как браузеры американчиков ...

Если есть данные, которые нельзя показывать другим - и 10 символов произвольных юзеры запомнят, и хттпс прикрутится, и с обычного shared хоста съедится и сервер мощный найдётся. Вы же не храните пароли от кредиток или ключи от вебманей у себя в базе на shared хосте? Или в таком же духе . Если храните - это проблемы с вашим рассудком.

PS - Вообще более сложные схемы, чем логин-пароль не рассматриваются?
 

Vladson

Сильнобухер
>>> А что с остальными?
А то что если бан будет по X_FORWARDED_FOR то его смогут обойти все, если по REMOTE_ADDR то забанишь дофига не винных юзеров, а если банить исходя из обоих вместе тогда это будет равносильно бану X_FORWARDED_FOR который легко обойти...


>>> Вы же не храните пароли от кредиток или
>>> ключи от вебманей у себя в базе на shared хосте?
Вот и я про то-же, сервер мощный найдётся !!!
 

Юзер

Новичок
Такой вариант..
Разрешить юзеру совершить не более 10 неправильных вводов пароля, после чего аккаунт блокируется. На регистрационное мыло юзера высылается ссылка для разблокирования.

Хотелось бы услышать недостатки такого метода защиты..
 

ksnk

прохожий
В общем-то нормально.
основная неприятность - наезд этого самого юзера :) Если кто-то начал ломать именно этот аккаунт - скорее всего он будет ломать несколько раз и юзер несколько раз заблокируется... Что ему, вероятно, не понравится...
 

Юзер

Новичок
не думаю что будет наезжать.. ведь не трудно ему будет обьяснить, что всё ЭТО в целях безопасности..
 

Vladson

Сильнобухер
Юзер
Проблема в том что таким образом можно умышленно блокировать работу всех акаунтов сайта !!!
 

betik

Новичок
Неправильный подход если большая секретность нужна. Нельзя перекладывать на юзера заботу о безопасности его мыла (ненадёжный сервер, нанадёжный провайдер, нанадёжные коллеги которые могут в отсутствие хозяина заказать такой пароль на соседний компьютер (хозяина аккаунта) и в обед посмотреть аутлюк експресс и проче-прочее прочее и прочее)

Вон как в кред картах система или в мобилах. Три раза ввёл неправильный пин - вводи пак-код. Забыл свой пак код а бумажку выкинул - плати 5 баксов саппорту, показывай паспорт и больше не забывай. И по себе знаю - больше не забываешь и бумажки не выкидываешь. А что, 5 баксов то не лишние?
 

ksnk

прохожий
Vladson
Ну, технически, IMHO, не так просто узнать имена ВСЕХ пользователей сайта. Для этого нужно ломануть собственно базу сайта, или сесть где-то "недалеко" от этого самого сайта, чтобы послушать/понять трафик... Значительно, технически, проще узнать несколько имен пользователей и их именно и ломать.
В этом смысле, нескотльких юзеров можно даже и заставить сменить логин... Хотя, конечно, решение не самое приличное...

Кстати, решение betik'а, хоть и отдает неким волюнтаризмом, но в чем-то очень даже привлекательно :)
 

alpine

Новичок
Есть предложение рассмотреть вариант с увеличением таймаута для определенного логина до следующего ввода пароля после неправильной попытки.
 

Юзер

Новичок
Вон как в кред картах система или в мобилах. Три раза ввёл неправильный пин - вводи пак-код. Забыл свой пак код а бумажку выкинул - плати 5 баксов саппорту, показывай паспорт и больше не забывай. И по себе знаю - больше не забываешь и бумажки не выкидываешь. А что, 5 баксов то не лишние?
Ты предлагаешь чтобы хакер всех юзеров на бабки сажал ))
да и сам подумай, тут и одного кода не запомнишь а если ещё второй тебе предлагают запомнить...
 

Vladson

Сильнобухер
ksnk
>>> не так просто узнать имена ВСЕХ пользователей
А всех и не обязательно, достаточно тех блокирование которых нанесёт вред сайту (мы говорим о защите от злоумышленников а не от монашек)
 

Royal Flash

-=MaestrO=-
Vladson - в Украине таких провайдеров, чтобы через 1 проксю пол страны ходило, я даже и не знаю... Да, офисы, например, в 10-100 машин могут лазить через проксю своего сервера, да и только...
Всеже вернемся к банальному стоп-листу по IP. Можно ведь сделать вот-что, чтобы решить проблемму "Эстонского IP":

Если пользователь хотябы 1 раз залогинился в системе - кидаем ему cookies: login и секретное сово, например хеш от хеша его пароля, etc. В случае, если IP пользователя стоит в стоп-листе, проверяем, его куки, и сравниваем с базой - если все ок - пускаем. Даем ему 10 попыток за 10 сек, и если тут превышен лимит неверной аутентификации - стираем из БД секретное слово, что приводит к блокированию этого нехорошего пользователя.
Пользователям с отключенными куками - настоятельно рекомендуем их включить, пугая их возможными последствиями :).

-~{}~ 27.12.05 00:57:

X_FORWARDED_FOR - исключается. Это тоже, что доверять USER_AGENT пользователя. Безопасности - 0.
white phoenix - в данном случае оптимизация - имеет смысл: сделать максимально дружественный интерфейс, реальному юзеру, и как можно более усложнить жизнь потенциальному взломщику, не навредив ни безопасности, ни юзабилити :)
 

vovanium

Новичок
ИМХО, вообще не нужно ничего пользователю кидать кроме хеша, причем хеша из случайных данных + возможно его id в базе (для ускорения выборки), а всё остальное уже хранится на серваке.
Даем ему 10 попыток за 10 сек
А зачем так много, ты думаешь нормальный юзер сможет выполнить за 10 секунд столько логинов? По-моему даже 5 логинов за 10 секунд уже много для человека, ему же еще нужно подумать, вспомнить, если он неправильно что-то ввел.

ИМХО, нужно комбинировать, т.е. вставить прием пароля не чаще одного раза к примеру в 5 сек для логина, и не чаще чем один раз в секунду для всего сервера (чтобы исключить подбор пароля для нескольких логинов сразу) + добавить в whitelist не только последний IP юзера, а также его подсеть (для этих целей можно geoip заюзать)
 
Сверху