4m@t!c
Александр
Авторизация и аутентификация. Корректность алгоритма.
Необходимо сделать аутентификацию, а затем авторизацию для каждой странице на сайте.
Сразу оговорюсь. посетители пользуют куки, от тотального снифа защищать не надо. Необходимо проверять права доступа к странице и выдавать или не выдавать информацию посетителю. Исследуя форум по "аутентификация" и "авторизация" надумал такой алгоритм. Сейчас берусь за его реализацию. так как опыта нет, то был бы признателен. если бы Вы указали на ошибки и вобщем сказали корректность идеи.
Аутентификация
1. Клиент в форме передает login и пароль.
2. Происходит поиск в таблице аккаунтов - accounts.
3. Результат поиска возвращает ID аккаунта. Если возвращается «0», то пользователю сообщается о неверных данных и происходит авторизация незарегистрированного пользователя.
4. ID аккаунта проверяется по таблице посещений hosts. В таблице есть следующие поля: memberid(ID аккаунта), cookhash(значение куки-хеша), ip(REMOTE_ADDR), hostdate(дата последнего посещения).
4.1. Если строка с таким ID существует, то значения ее полей обновляются.
4.2. Если строки с таким ID не существует, то добавляется новая строка.
5. Клиенту устанавливается кука-хеш, а в переменные сеанса записывается ID аккаунта.
Авторизация
1. Проверяется кука-хеш на существование.
1.1. Если кука-хеш найдена, то происходит поиск в таблице hosts по куке-хешу и REMOTE_ADDR.
1.1.1. Если IP-адреса различны, то удалить соответствующую запись из таблицы. Пользователю присвоить минимальный уровень доступа.
1.1.2. Если IP-адреса совпадают, то выдать уровень доступа, соответствующий ID.
1.2. Если кука-хеш не найдена, то пользователю присвоить минимальный уровень доступа.
и еще вопрос по ходу. На сколько опасно записывать уровень доступа к странице в переменную сеанса. стоит ли это того, что бы лишний раз обратиться к БД и вытянуть по ID статус посетителя???
Необходимо сделать аутентификацию, а затем авторизацию для каждой странице на сайте.
Сразу оговорюсь. посетители пользуют куки, от тотального снифа защищать не надо. Необходимо проверять права доступа к странице и выдавать или не выдавать информацию посетителю. Исследуя форум по "аутентификация" и "авторизация" надумал такой алгоритм. Сейчас берусь за его реализацию. так как опыта нет, то был бы признателен. если бы Вы указали на ошибки и вобщем сказали корректность идеи.
Аутентификация
1. Клиент в форме передает login и пароль.
2. Происходит поиск в таблице аккаунтов - accounts.
3. Результат поиска возвращает ID аккаунта. Если возвращается «0», то пользователю сообщается о неверных данных и происходит авторизация незарегистрированного пользователя.
4. ID аккаунта проверяется по таблице посещений hosts. В таблице есть следующие поля: memberid(ID аккаунта), cookhash(значение куки-хеша), ip(REMOTE_ADDR), hostdate(дата последнего посещения).
4.1. Если строка с таким ID существует, то значения ее полей обновляются.
4.2. Если строки с таким ID не существует, то добавляется новая строка.
5. Клиенту устанавливается кука-хеш, а в переменные сеанса записывается ID аккаунта.
Авторизация
1. Проверяется кука-хеш на существование.
1.1. Если кука-хеш найдена, то происходит поиск в таблице hosts по куке-хешу и REMOTE_ADDR.
1.1.1. Если IP-адреса различны, то удалить соответствующую запись из таблицы. Пользователю присвоить минимальный уровень доступа.
1.1.2. Если IP-адреса совпадают, то выдать уровень доступа, соответствующий ID.
1.2. Если кука-хеш не найдена, то пользователю присвоить минимальный уровень доступа.
и еще вопрос по ходу. На сколько опасно записывать уровень доступа к странице в переменную сеанса. стоит ли это того, что бы лишний раз обратиться к БД и вытянуть по ID статус посетителя???