Forum Webscript.Ru
Программирование => PHP => Тема начата: HefneR от 24 Ноября 2006, 15:42:48
-
Уже как-то писал авторизацию пользователей на сайте, но по неопытности, он получился весь дырявый. Теперь опять встала эта задача, но хочется что бы решение было защищено в полной мере. Искал статьи, но большинство ещё хуже чем мой старенький скрипт. Есть конечно же и те, где указываются слабые места, но всё-равно не полность. Если кто видел грамотную статью на тему как защитить авторизацию на сайте, поделитесь плз ссылочкой!
PS: я не ищу готовый код, хотя бы чисто тиоритически
-
Здесь смотрел?
http://www.securitylab.ru/ (http://www.securitylab.ru/)
Если нет, то посмотри. Возможно в статьях что-то и найдешь.
-
HefneR
Что Вы имеете ввиду под безопасной авторизацией?
-
1. при загрузке формы авторизации выдаем пользователю сессию, например, "count=1".
2. при проверке входных данных (post запрос) проверяем наличие сессии(count), если есть проверяем ее значение, оно не должно быть больше N (количество попыток авторизации). Если count > N то header(\'Status: 404\');exit;. Если же count3. Проверяем наличие пользователя с текущим логином и пасом(введеными в форме) в базе(файле, и т.д.) если пользователя нету то count++ -> форма авторизации.
4. если пользователь нашелся, редиректим на admin.php, count=0; и auth=1; (в admin.php проверяешь наличие в сессии значения auth = 1, если такоговой нету то редиректишь на auth.php)
Отчасти это поможет обезопастить авторизацию от подбора паролей.
остальная "безопасность" зависит лишь от реализации=)
-
xames
1,2 - ерунду сказал, дырку.
Что будет, если я просто не передам параметр сессии?
-
если не передашь от тебя не будут приняты логин и пас =) (может ты неправильно про параемтр понял? $_SESSION[\'count\']=1;)
-
xames
ты сам не понял: если сессионную куку затереть, то count будет снова равен единице - и так до бесконечности.
-
[off]замечательная ветка по безопасной авторизации[/off]
-
Если сессионую куку затереть, то сессия будет неопределенной, следовательно count будет отсутсвовать, а значит и данные опять приниматься не будут!
-
xames
сам же написал:
1. при загрузке формы авторизации выдаем пользователю сессию, например, "count=1".
-
Твои слова:
brainkiller:
ты сам не понял: если сессионную куку затереть, то count будет снова равен единице - и так до бесконечности.
ТОт кому надо авторизироваться сессию не будет стирать, логично? а тот кто захочет написать подборщика паролей столкнется с трудностями.
-
xames
Уфф.
xames:
столкнется с трудностями
ой ли? форму запросить лишний раз?
-
Может свой вариант предложишь для начала, а потом начнешь критиковать?
-
xames
Тут - в приведенном примере - всё просто: пишем отдельно ip (без поблажек типа via), можем отдельно еще и хранить где-то активную сесию для аккаунта в системе. Если нужно.
Ключевое слово - если нужно. Логично поставить вопрос (все же к автору) "а чего ты хочешь от системы безопасности, какого уровня безопасности?"
-
А HefneR походу уже ничего не нужно...
Народ, а чё проблема только в подборе пароля? Так сделайте интервал между попытками подбора 1 минуту! В форуме vBulletin вообще после 5 попыток 15 минут застоя...