Авторизуйтесь через куки, тоже храня админ - PullRequest
2 голосов
/ 10 марта 2011

Я тестирую способ аутентификации через частную систему с помощью cookie.

Считайте, что у меня есть БД, как это:

 adminID - user - email - psw

Всякий раз, когда кто-то входит в систему, я устанавливаю cookie, как это:

$adminID . 'i' . md5($email.md5($psw)); // Example: 12iAbsca89d2n2j321j312n3j2j2kn

Поэтому, когда веб-сайт замечает наличие этого файла cookie, он выбирает идентификатор из файла cookie, в данном случае 12, а затем проверяет соответствие Absca89d2n2j321j312n3j2j2kn с md5($email.md5($psw)) из db, где adminID = 12

Как вы думаете, это плохо? если да, то почему?

Я проверяю это с точки зрения производительности, потому что я могу сделать выбор в основном поле (adminID) без необходимости создания другого поля, проиндексированного в моей таблице

Спасибо

Ответы [ 4 ]

1 голос
/ 10 марта 2011

Зачем хранить в cookie, если у вас есть СЕССИИ, которые недоступны (просматриваются, редактируются) для пользователя?

Мое предложение - хранить в сессии только идентификаторы пользователей.

session_start();

//Logging in (checking for $_POST data etc., validating password)
if(do_log_in()){
  $_SESSION['user_id'] = $user_id;
}

if(isset($_SESSION['user_id'])){
  echo "User is logged in!";
}
1 голос
/ 10 марта 2011

Это зависит от того, насколько безопасным вы хотите, чтобы ваш сайт был. Этот подход лучше, чем многие, которые я лично видел, однако, он созрел для кражи файлов cookie, и все, что нужно сделать, это отследить трафик и скопировать ваш файл cookie и альт, у них есть доступ. Для небольших сайтов вероятность, вероятно, очень мала. На самом деле, единственный способ обеспечить полную безопасность - это правильно использовать сессии. Недостатком является то, что вы не будете входить в систему между посещениями, поэтому вы будете входить чаще, подумайте на сайте вашего банка или на eBay.

0 голосов
/ 10 марта 2011

Я бы порекомендовал оставить только идентификатор сеанса и использовать memcached для хранения данных сеанса.

0 голосов
/ 10 марта 2011

Вы можете просмотреть некоторые заметки и примеры здесь: http://php.net/manual/en/features.http-auth.php

...