За последние 24 часа нас посетили 193714 программистов и 1994 робота. Сейчас ищут 1494 программиста ...

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

Тема в разделе "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.504
    Симпатии:
    283
    Если у вас пользователь один или все пользователи имеют равные права, то ничем не плох.
    Если же это для просмотра или правки какой-то личной информации в многопользовательской системе, то нужно еще сравнивать ID.
     
  3. artoodetoo

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

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

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

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

    miketomlin Старожил

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

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

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

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

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

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

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