Аутентификация пользователей с помощью токена доступа

#php #mysql #session #authentication

#php #mysql #сессия #аутентификация

Вопрос:

Я использую обычный метод $ _SESSION для аутентификации зарегистрированных пользователей; но рекомендуется не использовать $_SESSION[‘ID’] с простым числовым идентификатором, поскольку его можно подделать. Я думал о назначении временного токена доступа (аналогично facebook), а затем сохранить его в строке mysql пользователя при успешном входе в систему. Затем, когда пользователь хочет отредактировать свой профиль

 if ($_SESSION[access_token] = ACCESS TOKEN (captured from mysql)) {edit profile}
 

Недостатком этой системы является то, что при каждом входе в систему нам нужен запрос на запись mysql; но я думаю, что безопасность значительно высока. И, конечно, мне нужно проиндексировать столбец токена доступа.

Это практичный метод? Нужно ли мне что-то улучшить в этом сценарии?

Комментарии:

1. Если вы на самом деле не делаете это через SSL, вы не можете претендовать на «высокую» безопасность каким-либо образом. Любой, кто перехватит файл cookie с идентификатором сеанса, передаваемым в открытом виде, может затем выдать себя за пользователя, и это тривиально в случае общедоступного Wi-Fi.

2. Как это делают обычные CMS? Они не основаны на SSL. Конечно, я поддерживаю идею SSL, и, конечно, я перейду к ней 🙂

3. @Ali это не та проблема, которую можно решить на стороне сервера. Сервер и клиент должны иметь возможность взаимодействовать друг с другом, а SID — это не что иное, как файл cookie (или параметр GET). Если сообщение не зашифровано, его может получить любой.