Comments 42
UFO just landed and posted this here
Не, ну если бы я пароль забыл, то через полтора года какой там я файл закачивал, точно бы не вспомнил.
0
ничто не мешает в имени файла задать адрес сайта ;)
0
И куда вы его предлагаете положить пользователям, чтобы через полтора года не забыть, где он?
0
да хотя бы на рабочий стол, или в папку мои документы.
-3
Выслать на почту?
+2
Вообще идея показалась интересной, но не в плане того, что пользователю дается ключ, с помошью которого он может восстановить пароль, а как генератор случайных чисел для ключа, которым будут шифроваться данные. Например вебмани кипер и опера мини при установке предлагают случайным образом подолбить по клавиатуре, а могли бы просто попросить закачать случайный файл (для мобильника проблематичнее, но это только пример таких приложений).
0
Секретный вопрос не легче сделать было? Или идентификацию пользователя, для восстановления пароля по номеру мобильного телефона?
0
Everything changes, да к тому же ваш номер мобильного телефона и, скорее всего, ваш ник знают как минимум ваши друзья ;)
0
Я и хочу сказать, что все меняется, сколько раз за год пользователь может переустановить ОС, особенно если это win xp, и забыть про ваш ключ…
И что, что мои друзья знают мой номер?
При регистрации пользователь вводит и подтверждает по смс свой номер телефона, пароль приходит на номер телефона… и ни кто его ни видит, кроме этого самого пользователя…
И что, что мои друзья знают мой номер?
При регистрации пользователь вводит и подтверждает по смс свой номер телефона, пароль приходит на номер телефона… и ни кто его ни видит, кроме этого самого пользователя…
0
И мыло они знают, это не мешает восстанавливать пароль по мылу. Суть не в том, чтобы для авторизации или смены пароля вводить свой номер, а в том, чтобы на номер приходил ключ для смены пароля.
0
Признаю, я балбес, до этого не додумался :)
-2
При беглом просмотре кода — ужасно.
1. Гораздо удобнее, если пользователь сам выберет файл из имеющихся на его компьютере. На сервере достаточно хранить MD5.
2.
Всего 99999 вариантов ключа для получения доступа к аккаунту. Есть в РНР для таких случаев полезная функция uniqid
3.
Слишком много букв. Можно написать file_put_contents(«token_$login.txt», "$login;$new_token;")
4.
Нет проверки на код ошибки загруженного файла.
5.
Йоу! Во-первых, This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. Во-вторых, есть такая функция как explode. В-третьих, использовать подобное регулярное выражение как минимум глупо. В-четвёртых, нет проверки на ошибки.
6.
На каждом углу пишут большими буквами про escape подставляемых значений, но мы продолжаем плодить говнокод, ага.
1. Гораздо удобнее, если пользователь сам выберет файл из имеющихся на его компьютере. На сервере достаточно хранить MD5.
2.
// генерируем число
$x=rand(0,99999);
// переводим его в МД5
$new_token=md5($x);
Всего 99999 вариантов ключа для получения доступа к аккаунту. Есть в РНР для таких случаев полезная функция uniqid
3.
// создаем новый файл токена и открываем его на запись
$new_token_file=fopen("token_$login.txt", w);
// добавляем в токен созданные значения
$var="$login;$new_token;";
// пишем файл
fwrite($new_token_file,$var);
// закрываем записаный файл
fclose($new_token_file);
Слишком много букв. Можно написать file_put_contents(«token_$login.txt», "$login;$new_token;")
4.
// получаем загруженный файл
$userfile = $_FILES['userfile'];
$userfile_tmp = $_FILES['userfile']['tmp_name'];
// считываем инфу с него
$read=file_get_contents($userfile_tmp);
Нет проверки на код ошибки загруженного файла.
5.
//разделяем значения
$x=split (";", $read);
// получаем значения из массива
$login=$x[0];
$token=$x[1];
Йоу! Во-первых, This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. Во-вторых, есть такая функция как explode. В-третьих, использовать подобное регулярное выражение как минимум глупо. В-четвёртых, нет проверки на ошибки.
6.
$read=file_get_contents($userfile_tmp);
//разделяем значения
$x=split (";", $read);
// получаем значения из массива
$login=$x[0];
$token=$x[1];
//считываем с базы
$sql=mysql_query("SELECT * FROM az_user WHERE user_login='$login'");
На каждом углу пишут большими буквами про escape подставляемых значений, но мы продолжаем плодить говнокод, ага.
+10
Предположим, что сайт хакнут. Зная алгоритм создания файла, он будет спокойно логиниться и вы ничего с этим не сделаете, т.к. сменить алгоритм нельзя.
0
Чтобы хакнуть сайт достаточно подставить SQL-выражение вместо логина в генерируемый текстовый файл. :--)
+1
Даже если пользователь не забудет какой файл надо закидывать, даже если у него не упадет файловая система или жесткий диск, ему придется таскать файл с собой, потому что восстановить пароль может понадобиться и на другом компьютере, где разумеется этого файла не будет
0
Идея идеей, но вот конечная реализация бредовая.
+4
идея нормальная. вопрос в ее целесообразности для конкретного проекта. вот никто же не против хранить на флешке или где-нибуть ключ от вебмани или какого-нибуть из интернет-банков.
0
SELECT WHERE name=$_POST['name'] — Harder, Better, Faster, Stronger.
Идея конечно хороша, но что если в файлике не хранить никакой текстовой информации, а, например, графическую (дада, все поняли, куда я веду...:) )?
Идея конечно хороша, но что если в файлике не хранить никакой текстовой информации, а, например, графическую (дада, все поняли, куда я веду...:) )?
0
UFO just landed and posted this here
хм. 99999 вариантов мало.
Можно написать скрипт, который быстро сгенерит нам 99999 токенов ваших и в каждый подставит логин admin (наверняка такой есть :) ), ну или проанализировать сайт и найти хоть какой-нить логин. Крайний случай — проверить топ10 логинов — admin, administrator, adm, root, vasya :) ну вы поняли.
А затем тупо прогнать все варианты и все. Доступ получен.
Решение:
Нужно тогда делать больше вариаций — это РАЗ.
И защиту от брута — это ДВА.
— $login=$x[0];
— а где проверка на SQL-инъекцию? $login же потом просто вставляется в запрос.
Нужно тогда в токен добавить еще контрольную сумму всего файла, чтоб туда ничего лишнего не запихнули.
Можно написать скрипт, который быстро сгенерит нам 99999 токенов ваших и в каждый подставит логин admin (наверняка такой есть :) ), ну или проанализировать сайт и найти хоть какой-нить логин. Крайний случай — проверить топ10 логинов — admin, administrator, adm, root, vasya :) ну вы поняли.
А затем тупо прогнать все варианты и все. Доступ получен.
Решение:
Нужно тогда делать больше вариаций — это РАЗ.
И защиту от брута — это ДВА.
— $login=$x[0];
— а где проверка на SQL-инъекцию? $login же потом просто вставляется в запрос.
Нужно тогда в токен добавить еще контрольную сумму всего файла, чтоб туда ничего лишнего не запихнули.
0
А еще есть такая штука — авторизация по SSL сертификатам ;)
+5
UFO just landed and posted this here
Я делал логин по файлу для банковской системы.
Там даже несколько иначе было… Вся БД шифровалась 256-битным ключом из файла. Ни при какомм желании посмотреть чужие записи нельзя.
Файлик вшивался в флешечку, писался плагинчик для IE/FF, который при заходе на сайт коннектился к ключу.
Вот так просто и удобно. Никуда ничего вводить не надо, файлик искать не надо. Только имей при себе ключ и заходишь на сайт быстро и удобно.
но есть проблемки… Если потерял ключ… То это конец. Но, конечно, на моей флешке хранились все шифровки, так что восстановить ключ проблем небыло, но втык люди получали. За месяц тестирования «втык» получили четыре человека =)
Там даже несколько иначе было… Вся БД шифровалась 256-битным ключом из файла. Ни при какомм желании посмотреть чужие записи нельзя.
Файлик вшивался в флешечку, писался плагинчик для IE/FF, который при заходе на сайт коннектился к ключу.
Вот так просто и удобно. Никуда ничего вводить не надо, файлик искать не надо. Только имей при себе ключ и заходишь на сайт быстро и удобно.
но есть проблемки… Если потерял ключ… То это конец. Но, конечно, на моей флешке хранились все шифровки, так что восстановить ключ проблем небыло, но втык люди получали. За месяц тестирования «втык» получили четыре человека =)
0
UFO just landed and posted this here
Sign up to leave a comment.
Логин на сайт по файлу