Не нравится мне это...

Silex

unitecsys
Не нравится мне это...

Пытаюсь написать модуль авторизации. На страничке с формой регистрирую переменную сессии, сабмитюсь на себя и в случае успешной аутентификации редирект на др. файл. Все файлы из закрытой области проверяют переменную и реферер, иначе - дестрой сессии и страничка с формой. "Закрытые" файлы не лежат в каталоге с htaccess. PHPSESSID таскается с собой по всем ссылкам.

НО. Мне это не нравится: нутром чую, что здесь либо что-то лишнее, либо это задание на практику для начинающих хацкеров... Я прав?
 

AnToXa

prodigy-одаренный ребенок
если только аккуратно все это закодить
 

Silex

unitecsys
Хорошее замечание :)
А что вы имеете ввиду под словом "rap" или "YO"? :) (С) Грув
Меня волнует то, что в окне адреса браузера постоянно &PHPSESSID=что-то. Начитался только что рассказов на форуме о том, что люди кучу всего хранят о прошедшем авторизацию, и на фоне этого переменная и реферер как-то бледненько смотрятся. Да к тому же, промелькнуло заявление, что все это с полпинка ломается :(
Кому верить?
 

AnToXa

prodigy-одаренный ребенок
!!! ДУМАТЬ НАДО, А НЕ ВЕРИТЬ. !!!

чем плохо таскать за собой идентификатор, это то, что он оседает в реферере.
 

Dim-Dim

looking...
Re: Не нравится мне это...

Автор оригинала: Silex
Все файлы из закрытой области проверяют переменную и реферер, иначе - дестрой сессии и страничка с формой.
От реферера откажись лучше сразу. Очень многие прокси его режут.
 

Silex

unitecsys
От реферера откажись лучше сразу. Очень многие прокси его режут.
А если как дополнительная защита? Типа если иссет, то проверим, а если пусто - чекать только переменную сессии.
!!! ДУМАТЬ НАДО, А НЕ ВЕРИТЬ. !!!
Да думать всегда надо, во только когда знаний мало в какой-то области, поначалу приходится верить авторитетам, а потом уже анализировать полученные знания.
чем плохо таскать за собой идентификатор, это то, что он оседает в реферере.
А чем плохо? В смысле, если юзер от меня к кому-то уйдет, а его идентификатор осядет в чьей-то статистике?
 

AnToXa

prodigy-одаренный ребенок
А чем плохо? В смысле, если юзер от меня к кому-то уйдет, а его идентификатор осядет в чьей-то статистике?
да и пока сессия не истекла кто-нить может заломиться с этим id
 

Silex

unitecsys
А если в базу заносить флаг, что админ сейчас админит, и никого не пускать, пока он не выйдет и флаг не обнулится? Если при выходе переменная сессии принимает значение "не авторизирован", то, как я понимаю, имея на руках ай-ди сессии, хацкер не сможет заломиться, даже если браузер юзера не закрылся. Так?
 

Silex

unitecsys
Это когда по клику на ссылке юзер попадает на страничку, на которой session_destroy() и переменная сесси выставляется в неактивное положение. Затем юзера перенапрвляют на форму ввода логина/пароля.
 

AnToXa

prodigy-одаренный ребенок
а кто сказал, что он просто не наберет другой адрес в строке запроса?
 

Silex

unitecsys
А у него на стенке перед компом должен плакат висеть: "Выйди из режима администрирования или закрой браузер!" Шучу, конечно. Согласен, что так сессия будет жива. Но... я же типа Вас предупреждал, в случае чего? Хотя, с другой стороны, такой подход - неправильный: о юзерах нужно заботиться и страховать каждый шаг. Тут уже можно вести журнал обращений к базе, сверять время последнего обращения с текущим и, если оно превысит, скажем, 10 мин, просить втоптаь логин/пароль заново. Правда, 10-ти минут может быть достаточно :)

Но если он все-таки по правилам выйдет, то все нормально будет?
 

Silex

unitecsys
Кстати, можно с собой идентификатор сессии не таскать? Если куки выключены, то другого способа я не знаю :(
 

AnToXa

prodigy-одаренный ребенок
если куки выключены, то он сам виноват :))
или можно отшивать таких.
 

Silex

unitecsys
Кого отшивать, админа заказчика? :))
А на мои вопросы ты так и не ответил ;-) (это, конечно, не значит, что ты обязан это делать, но плиз...)
 

AnToXa

prodigy-одаренный ребенок
я ответил :) просто в завуалированой форме с намеком на "думать надо" :)

1. Не таскать нельзя, ибо как же еще пхп определит id сессии, не таскать через урл - юзать куки или трекить по ip и т.п.

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

Silex

unitecsys
Спасибо, что ответил "в незавуалированнойформе" :)

А что такое "трекить по ай-пи"? Ты имеешь ввиду отслеживать ай-пишник на протяжении всего хождения юзером по закрытой территории? Если так, то там же на диал-апе они как-то динамически меняются...

И еще такой вопрос: если все-таки через урл таскать, это совсем-совсем плохо или если обязать "выходить через дверь", то нормально? Просто времени переделывать уже маловато, а с куками в упор не могу разобраться :( А тупо копировать примеры не хочется.

Если я не буду таскать в урле ай-ди, но все оставлю по-прежнему (вначале каждого файла инклудится
PHP:
unset($check);
session_register('check);
а затем check проверяется на значение,то при включенных куках у юзера все будет нормально? Или нужно вначале все эти время жизни сессии, проверка наее существование, еще бог знает что...
 

AnToXa

prodigy-одаренный ребенок
кука пытается автоматом ставиться, и если не может, то пхп пихает id во всяческие теги и хрефы

имхо (могу врать)
unset($check);
session_register('check'); положит в сессию пустую переменную

надо вот так
unset($check);
session_start ();
 

Silex

unitecsys
Ну id он там пихает, если какая-то переменная окружения выставлена, а на хостинге с этим договариваться - долго и неизвестно чем кончится.

session_register(), насколько я знаю, можно юзать и без session_start () - сессия на автомате запустится. Но я тоже могу врать :)

Насчет пустой переменной - это при включенных куках и без тягания id?
 
Сверху