Задать вопрос
@User782
Кратко о себе

Какие недостатки у такой авторизации?

Я авторизуюсь вот так:
$logged = false;
// если есть куки, проверяем их и авторизуем
if(isset($_COOKIE['user_id']) AND isset($_COOKIE['hid'])) {
... запрос в базу, если есть, то ... $logged = true;
}

То есть каждый раз идет запрос в базу, при каждом открытии страницы, что бы проверить статус юзера.
Чтобы убрать этот долбозапрос, решил таким образом аторизовывать.
Какие проблему могут возникнут у такого варианта авторизации?
Юзер логинится.
1. В указанной папке создается txt с именем хеша, к юзеру в базу идет этот хеш.
2. В файл записывается хеш, к которому добавляется какое-то значение, например 5, получается - 5хеш.
3. В файл записываются некоторые глобальные переменные.
4. Создается кука с этим хешем.

Юзер переходит на другую страницу:
1. Проверка, если есть файл с именем хеша и содержанием 5хеш, то статус logged = true
2. Если нет файла, или не совпадает содержание и хеш, или нет кука, то logged = false

То есть долбозапрос теперь и не нужен.

P.S. при бане файл удаляется, при каждом залогивании удаляется старый файл, создается новый с именем нового хеша
  • Вопрос задан
  • 266 просмотров
Подписаться 1 Простой 16 комментариев
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
- Что будет если пользователя взломали, и взломщик залогинен. Дальше пользователь бежит меняет пароль, но взломщик продолжит сидеть под пользователем, ибо файл.
- Что будет если пользователя вдруг забанят? А вы не сделали запрос к БД и не узнали этого.
- Вообще любая ситуация когда вам нужно получить актуальные данные о текущем авторизованном пользователе из базы, но вы этого не делаете, так как экономите на этом запросе. Например решили добавить роли пользователям на сайте, меняете role для юзера. Как без запроса к БД текущему пользователю это узнать, что у него поменялась роль и теперь доступны доп. функции?

Чтобы убрать этот долбозапрос

Поймите и примите простую истину - база данных создана для того чтобы РАБОТАТЬ, так пусть же работает и исполняет ваши долбозапросы. Не нужно тут ничего придумывать.

«Преждевременная оптимизация — корень всех зол». Дональд Кнут.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Есть такая русская пословица, "дурная голова ногам покоя не даёт".
Вот она про это "изобретение".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы