Различные вопросы по PHP и MySQL

255K
.
ramzes
# Koenig (29.09.2016 / 22:03)
ramzes, ты по ссылке ходил на пхп.нет вся работа сессий просто переложена на базу, там стандартный интерфейс примерно реализован, то есть у тебя старт сессии уже идет с базы, а так там та же кука
тебе любой говномастер скажет, что мускул медленнее файлов
я еще понял бы мемкеш с какой ни будь хитрожопой защитой, и то, защита эта в исполнении окажется медленнее чем те же файлы по дефолту.
подозреваю что в рекомендации имелось ввиду вообще другое.
токен в сессии заменяет сравнение шифрованного пароля что позволяет сэкономить на тяжелых функциях хеширования типа md5 или пассвордкрипт.
не наверное. без куки ты не идентифицируешь юзера ни как. единственная альтернатива это локалсторейдж, но это сразу дыра
.
# ramzes (29.09.2016 / 22:01)
в чем смысл? пароль и есть тот самый токен
Цитирую: (+/-)
/**
Есть токен. По нему мы можем убедиться, что к нам пришёл настоящий пользователь, а не злоумышленник. 
Иными словами, токен используется для того, чтобы аутентифицировать пользователя. Когда пользователь 
входит на сайт, при успешной проверке данных (логина, пароля) пользователю выдаётся этот токен. Здесь ты 
можешь сохранить его в куку, а можно просто через любой другой заголовок его отдать, или же вообще в теле 
ответа. Выбираешь сам, как тебе удобнее.

Далее этот токен при каждом запросе отправляется на сервер, чтобы можно было аутентифицировать пользователя. 
Для того, чтобы выйти, нужно просто перестать отправлять токен в запросе 
(удалить куку или как там у тебя это реализовано).

Пара слов о том, что содержится в токене:

Для того, чтобы идентифицировать пользователя, нужно знать его ID или логин, как тебе удобнее.
Но одного идентификатора недостаточно, т.к. можно подсунув любой идентификатор залогиниться под любым пользователем.
Для этого необходимо подписать его секретным ключём.
В PHP сделать это можно с помощью функции hash_hmac().
Она принимает имя алгоритма, набор данных и секретный ключ.
Так как подписываем логин, сигнатура будет получена следующим образом:
*/

hash_hmac('sha256', $login, $config['auth.secret_key']);

/** 
Теперь создаём сам токен:
*/

$token = serialize(array(
    'login' => $login, 
    'signature' => hash_hmac('sha256', $login, $config['auth.secret_key'])
));

/**
Именно этот токен выдаётся пользователю, чтобы он мог его использовать при аутентификации.

Можно также добавить время жизни токена, чтобы можно было его прибить, если прошло достаточно 
много времени с момента его создания. Если используются куки, то это не обязательно.

Далее проверяем токен:
*/

$token = $request->cookies->get('auth_token');
$token = unserialize($token);
if (array_key_exists('login', $token) && array_key_exists('signature', $token)) {
    $user = $users->findByLogin($token['login']);
    if ($user) {
        $expectedSignature = hash_hmac('sha256', $user['login'], $config['auth.secret_key']);
        if ($expectedSignature == $token['signature']) {
             // Аутентификация прошла успешно!
        }
    }
}
.

ДоХтор, что по сути равно старейшему варианту md5(pass)==$hashpass
с небольшими вариациями.

.
# ramzes (29.09.2016 / 22:16)
ДоХтор, что по сути равно старейшему варианту md5(pass)==$hashpass
с небольшими вариациями.
Ну, я не берусь утверждать, что это самый верный вариант авторизации. Как по мне, так проще запилить на сессиях и куках. А кому-то проще установить фреймворк, и заюзать авторизацию из коробки. Кому что ближе.
.
(\/)____o_O____(\/)

ДоХтор, ты перепутал авторизацию и аутентификацию , первое это регистрация, второе это идентификация

.
# ДоХтор (29.09.2016 / 22:41)
Как по мне, так проще запилить на сессиях и куках.
так это точно так же работает. тут описан процесс идентификации, а не хранения
.
# Koenig (29.09.2016 / 23:11)
ДоХтор, ты перепутал авторизацию и аутентификацию , первое это регистрация, второе это идентификация
Да, есть между ними сходство
Аутентификация (+/-)
Аутентификация — проверка подлинности предъявленного пользователем идентификатора. Аутентификация требуется при доступе к таким интернет-сервисам как: электронная почта веб-форум...
Авториза́ция (+/-)
Авториза́ция (англ. authorization — разрешение, уполномочивание) — предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий.
.

аутентификация в контексте, это определение уникальности.
не сам процесс авторизации, а именно та часть которая сверяет верность полученных данных с данными определенного пользователя.
авторизация это более глобальный процесс

.
Enter нажат, к чему теперь рыданья…

Как подключить php файл с основного домена инклудом для поддомена Что-то он не коннектится ни фига. Тут что-то с правами связано? Права одного пользователя.

.

по умолчанию нельзя инклудить по хттп протоколу

Всего: 7969