Добрый день.
Основные момент авторизации, регистрации
Озадачился вышеуказанной проблемой посмотрел уроки в сети и если честно –как о напрягает механизм их защиты.
Посмотрел форум по вышеуказанной теме, и хотелось бы уточнить верно, ли я понял основные моменты.
При авторизации желательно не хранить зашифрованный пароль рядом с логином в куккисах, за место них лучше использовать временный «ключ» который закрепляется за пользователем в базе данных.
Ключ создается и закрепляется в базе данных за юзером в момент авторизации.
Т.е. в момент обращения к основным скриптам система получает этот ключ и по нему определяет пользователя.
Если юзер «выходит» с сайта, то ключ удаляется из БД.
Все верно?
Одно мне не понятно, почему ключ желательно хранить в сессиях, а не в куккисах, ведь сессия связана с браузером пользователя куккисом?
Спустя 1 час, 32 минуты, 39 секунд (11.08.2012 - 15:50) DarkLynx написал(а):
Сессия работает пока открыт браузер, закрыли браузер сессия удалилась.
Куки нужны для хранения информации о авторизации на долгие сроки, от суток до скольких угодно.
Поэтому все зависит от ситуации..
Куки нужны для хранения информации о авторизации на долгие сроки, от суток до скольких угодно.
Поэтому все зависит от ситуации..
Спустя 14 минут, 7 секунд (11.08.2012 - 16:04) Guest написал(а):
разумно ли создавать дополнительную проверку по ip?
Ведь почти на каждом домашнем интернете рас в сутки происходит обновление ip адреса
Ведь почти на каждом домашнем интернете рас в сутки происходит обновление ip адреса
Спустя 53 секунды (11.08.2012 - 16:05) VladKamyshanov написал(а):
На хабре была простенькая статья - посмотрите
Спустя 7 минут, 10 секунд (11.08.2012 - 16:12) Guest написал(а):
дык, ее и юзал, пример от ирбиса еще зацепил, я могу ip адресс подменить, и кукксиы своровать, поэтому не знаю подходит ли такой метод может что то посильнее есть?
Спустя 2 часа, 15 минут, 2 секунды (11.08.2012 - 18:27) AlmazDelDiablo написал(а):
От воровства куков вообще ничего не защитит.
Спустя 15 минут, 30 секунд (11.08.2012 - 18:43) kamanch написал(а):
Guest
Ты можешь ip адрес изменить (под левым зайти).
Но ты не можешь зайти под конкретным ip.
Если ошибаюсь, то пришли мне письмо c ip 123.123.123.123 на info@kamanch.de
Ты можешь ip адрес изменить (под левым зайти).
Но ты не можешь зайти под конкретным ip.
Если ошибаюсь, то пришли мне письмо c ip 123.123.123.123 на info@kamanch.de
Спустя 2 часа, 2 минуты, 10 секунд (11.08.2012 - 20:45) Guest написал(а):
curl_setopt($ch, CURLOPT_INTERFACE, '123.123.123.123');
+ куккисы разве так нельзя открыть страницу?
+ куккисы разве так нельзя открыть страницу?
Спустя 1 час, 40 минут, 36 секунд (11.08.2012 - 22:26) Guest написал(а):
ребят может быть какой-нибудь https попробовать?
Спустя 1 день, 21 час, 12 минут, 19 секунд (13.08.2012 - 19:38) VladKamyshanov написал(а):
Https по идее должен защитить от кражи сессий
Спустя 12 часов, 24 минуты, 25 секунд (14.08.2012 - 08:02) 123456 написал(а):
я лично делаю так:
$ip_brow = $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'];
$kash = md5(md5(rand(523,6345).$pin.rand(452,4999)));
$_SESSION['email'] = $user_avtorizacia['email'];
$_SESSION['kash'] = $kash;
mysql_query("update `pol` set `ips_browser`='".md5(md5($ip_brow))."', `kash`='".md5(md5($kash))."' where `email`='".mysql_real_escape_string($user_avtorizacia['email'])."'");
то есть создаю переменную айпи+браузер пользователя и кэш(ключ), заношу в сессию кэш и email пользователя. а в бд к данному пользователю записываю айпи+браузер в двойном мд5, и кэш в двойном мд5.
кстати email'ы на сайте не светятся, всё работает через логины, так что, никто не знает какие емаилы зарегистрированы(кроме меня).
и потом проверяю или пользователь авторизован так:
проверяем на валидность емаил, проверяем или есть в бд такой емаил, если есть, то проверяем
и
вроде всё работает на УРА!
какое ваше мнение???
$ip_brow = $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'];
$kash = md5(md5(rand(523,6345).$pin.rand(452,4999)));
$_SESSION['email'] = $user_avtorizacia['email'];
$_SESSION['kash'] = $kash;
mysql_query("update `pol` set `ips_browser`='".md5(md5($ip_brow))."', `kash`='".md5(md5($kash))."' where `email`='".mysql_real_escape_string($user_avtorizacia['email'])."'");
то есть создаю переменную айпи+браузер пользователя и кэш(ключ), заношу в сессию кэш и email пользователя. а в бд к данному пользователю записываю айпи+браузер в двойном мд5, и кэш в двойном мд5.
кстати email'ы на сайте не светятся, всё работает через логины, так что, никто не знает какие емаилы зарегистрированы(кроме меня).
и потом проверяю или пользователь авторизован так:
проверяем на валидность емаил, проверяем или есть в бд такой емаил, если есть, то проверяем
if($user['kash'] == md5(md5($_SESSION['kash'])))
и
if($user['ips_browser'] !== md5(md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'])))
вроде всё работает на УРА!
какое ваше мнение???
Спустя 10 дней, 17 минут, 30 секунд (24.08.2012 - 08:20) 123456 написал(а):
Как вы думаете про мой вариант???
Спустя 4 минуты, 37 секунд (24.08.2012 - 08:25) DarkLynx написал(а):
В сессию конечно имеет смысл писать ИП пользователя, но юзерагент имхо уже лишнее, только если до кучи =)
Спустя 1 час, 58 минут, 48 секунд (24.08.2012 - 10:23) 123456 написал(а):
согласен) но так: $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'] более безопасно) хотяяяяяя....