Авторизация по файлу

Печать RSS
541

I

Пришелец
0
В файле например держи md5, в базе `password`. Когда происходит авторизация - проверяет и определяет результат, это все просто.

Добавлено через 01:51 сек.
Сейчас накатаю быстренько пример
Автор
2000 лет д.н.э.
0
21. iNeeXT, ты не понял.
в файле нет вообще ни чего относящегося к аккаунту.
ни пароля, ни его хеша
сам файл и есть пароль
И

Оранжевые штаны
0
22. ramzes, Random символы, затем запоминаем хэш этого файла?
Автор
2000 лет д.н.э.
0
<?
            if($_FILES['verify']['type']=='image/png'){
                $prov = $sql->query("SELECT id, password, verify FROM users WHERE verify = '".md5(md5_file($_FILES['verify']['tmp_name']))."';")->fetch_assoc();
                if($prov['verify']!=''){
                    $_SESSION['my_id'] = $prov['id'];
                    $_SESSION['my_pass'] = cript($prov['password']);
                    SetCookie('my_id', $_SESSION['my_id'], (time()+(3600*24*365)), '/', '.'.$_SERVER['HTTP_HOST']);
                    SetCookie('my_pass', $_SESSION['my_pass'], (time()+(3600*24*365)), '/', '.'.$_SERVER['HTTP_HOST']);

                    Header("Location: /");
                }else{
                    $_SESSION['error'] = 'Ключ не действителен!';
                    Header("Location: ./");
                }
            }else{
                $_SESSION['error'] = 'Неподходящий файл!';
                Header("Location: ./");
            }

        }else{
                $_SESSION['error'] = 'Неверный запрос!';
                Header("Location: ./");
            }
M

Пришелец
0
20. ramzes, представляешь сколько там генерить? Пароли же у тебя не подбирают, хотя там намно меньше вариантов
Автор
2000 лет д.н.э.
0
23. rezent, тогда не получится идентифицировать по файлу, все внешние ключи не известны при авторизации. есть только фал.
хотя... натолкнул на мысльsmile у файла есть еще один постоянный параметр))

Добавлено через 01:37 сек.
25. MrPink, вот я об этом и спрашивалsmile на сколько это трудно
M

Пришелец
0
26. ramzes, ну смотри, если ты будешь делать файлы по 100 байт, то надо будет перебрать до 256^100 вариантов
Автор
2000 лет д.н.э.
0
27. MrPink, 500байт примерно.
но я все таки придумал соль откуда братьsmile
(я опасался того что md5 как известно все таки может выдать идентичный хеш на две совершенно разных строки)

Добавлено через 02:42 сек.
Всем спасибо за советы, с меня плюсыsmile
rezent'у правда пока не могу поставить, придется повременить*пардон*
I

Пришелец
0
22. ramzes, по твоему скрипту название файла и есть пароль

а я сделал как на хабре)
http://lorinz.ru/213/
Автор
2000 лет д.н.э.
0
29. iNeeXT, ты уверен что понял мой код?;)
я уверен что нетsmile
ты в бд хранишь содержимое файла (по 1 для каждого юзера) по факту содержимое этого файла - тот же пароль, только еще и не шифрованный.
кстати я уже сейчас вижу уязвимость в твоем подходе (баг влекущий ненадежность всей системы авторизации)
				$extension = array('key');
				if (!in_array(pathinfo($file, PATHINFO_EXTENSION), $extension))
еще момент.
зачем это?
пусть юзер хранит файл как ему нравится. расширение роли не играет файл все равно не наследует расширение после аплоада
Изменил: ramzes (05.05.2012 / 01:25)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск