За последние 24 часа нас посетили 109344 программиста и 5622 робота. Сейчас ищут 2780 программистов ...

Аутентификация пользователей

Тема в разделе "PHP для новичков", создана пользователем Reken, 12 авг 2021.

Метки:
  1. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    200
    Симпатии:
    5
    Подскажите пожалуйста, чем плох следующий способ аутентификации пользователей:
    Пользователь через форму ввода отправляет логин и пароль (POST) в скрипт аутентификации. Скрипт через POST получает логин и пароль (пароль в md5). Выполняет сравнение логина и пароля с БД (mysql), если совпадение есть, то записывает логин в сессию и перенаправляет пользователя в личный кабинет, если совпадений нет отправляет пользователя обратно на страницу ввода логина и пароля...

    Защита странички личного кабинета, выглядит так:
    Код (Text):
    1. session_start();
    2. $login = $_SESSION['login'];
    3.  
    4. if ($login == true){
    5.  
    6. #Код личного кабинета
    7.  
    8. }else{
    9.         exit("<p><strong>Ошибка!</strong>Вы не можете просматривать страницы портала без аутентификации!.</p>");
    10.     }
    11.    
     
  2. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Если у вас пользователь один или все пользователи имеют равные права, то ничем не плох.
    Если же это для просмотра или правки какой-то личной информации в многопользовательской системе, то нужно еще сравнивать ID.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.125
    Симпатии:
    1.222
    Адрес:
    там-сям
    Это авторизация, а не аутентификация.

    Если по канонам, то надо ещё выставить статус 403.

    Пользователю будет понятней если написать "у вас нет права на эту страницу" или "войдите чтобы увидеть эту страницу".
    ИЛИ сразу редиректить на страницу аутентификации, сохраняя адрес текущей страницы где-то (в сессии/в get-параметре) чтобы вернуться на неё.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.859
    Симпатии:
    656
    Дьявол в деталях:
    PHP:
    1. $login = $_SESSION['login'];
    Обычно при использовании сессий основную авторизационную проверку делают так:
    PHP:
    1. if (isset($_SESSION['login'])) {
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    musicman3 нравится это.
  6. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    945
    Симпатии:
    146
    Ну, соль никто не отменял, но да, последняя пара ф-ций вкуснее.
     
  7. musicman3

    musicman3 Активный пользователь

    С нами с:
    30 июн 2019
    Сообщения:
    147
    Симпатии:
    12
    Адрес:
    Дыра на карте
    Полностью поддерживаю. Именно так и нужно. Это самый надежный на данный момент метод.