[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что скажете про такую авторизацию?
motorway
Насколько легко взломать следующую авторизацию:
при входе на сайт проверяется
if ($_COOKIE['mycookie']!="somevalue") header("...");
При вводе пароля кука устанавливается, а далее в каждом скрипте проверяется, установлена ли она. В самой куке хранится некий код, на основе которого можно войти на сайт. Соответственно, устанавливается она только при правильном вводе пароля



Спустя 28 минут, 5 секунд (19.12.2010 - 20:12) waldicom написал(а):
Если эту куку своровать, то зайти сможет любой.

Спустя 44 секунды (19.12.2010 - 20:13) vasa_c написал(а):
Это стандартный механизм авторизации, который везде и используется.
А насколько легко сломать зависит от того как генерируется этот "некий код".

Спустя 3 часа, 30 минут, 10 секунд (19.12.2010 - 23:43) ИНСИ написал(а):
Цитата
if ($_COOKIE['mycookie']!="somevalue") header("...");

ЭТО НЕ АВТОРИЗАЦИЯ!!! Выложи всю авторизацию и только потом можно будет сказать, что-нибудь....

Спустя 13 минут, 10 секунд (19.12.2010 - 23:56) motorway написал(а):
Пока что я привел сам пример кода, готового нет, это заготовки. Здесь предполагается, что данный код запускается на всех страницах админки/сайта и перенаправляет на страницу ввода пароля, если нет куки. А почему не авторизация? Соответственно, после ввода пароля правильного используется SetCookie

Спустя 1 минута, 24 секунды (19.12.2010 - 23:57) divine266 написал(а):
это только проверка на наличие куки

Спустя 20 минут, 30 секунд (20.12.2010 - 00:18) motorway написал(а):
Ну тогда еще проверка пароля и установка куки:
if ($_POST['pass']=='password' and $_POST['login']=='login') SetCookie(...);

Примерно так.
А на всех страницах будет инклуд той проверки куки. Если ее нет, переадресуем, если есть, продолжаем

Спустя 4 минуты, 1 секунда (20.12.2010 - 00:22) ИНСИ написал(а):
motorway ну, использовать все время куки, так не делается. Вот пример:
    1. Проверяем, есть ли сессия
    1.1 Делаем, что хотим
    2. Проверяем, есть ли куки
    2.1. Проверяем в БД, есть ли запись такой же hash, какой в куки
    2.2 Если есть, то создаем сессию + куки, обновляем в БД hash куки и перенаправляем на нужную страницу
    2.3 Если нет, то удаляем ее


Спустя 2 минуты, 59 секунд (20.12.2010 - 00:25) divine266 написал(а):
уменя тогда вопрос, а для чего хранить хеш куки в базе?

Спустя 10 минут, 5 секунд (20.12.2010 - 00:35) ИНСИ написал(а):
допустим у меня есть:
$_COOKIE['hash'] = 'abc';

и в БД есть запись:
id - 1, name - welbox2, hash - abc


Когда я войду на сайт, то проверка будет такой:
"SELECT * FROM `users` WHERE `hash` = '{$_COOKIE['hash']}'"


ЭТО ТОЛЬКО ПРИМЕР! Надо шифровать hash и т.д...

Спустя 1 минута, 49 секунд (20.12.2010 - 00:37) divine266 написал(а):
а спасибо, и я так понял каждый раз надо его обновлять?

Спустя 13 минут, 44 секунды (20.12.2010 - 00:51) ИНСИ написал(а):
divine266 ну, все по разному делают. Кто-то заносит в хеш логин + пароль (не очень), кто-то генерирует через функцию уникальные свои хеши (я делаю так), а потом заносят 2 раза в md5 и обновляют в БД когда пользователь входит через форму. Пользователи могут войти на сайт через раные компы, поэтому когда он входит через форму, лучше сбросить хеш и записать новый.

Спустя 11 минут, 10 секунд (20.12.2010 - 01:02) divine266 написал(а):
понял wink.gif спасибо

Спустя 22 часа, 38 минут, 16 секунд (20.12.2010 - 23:40) motorway написал(а):
Цитата (welbox2 @ 19.12.2010 - 21:22)
motorway ну, использовать все время куки, так не делается.

А почему так плохо? Именно из-за безопасности или просто какие-то неудобства для пользователя возможные?

Спустя 5 минут, 7 секунд (20.12.2010 - 23:45) divine266 написал(а):
Именно из-за безопасности wink.gif

Спустя 12 часов, 54 минуты, 34 секунды (21.12.2010 - 12:40) ИНСИ написал(а):
Цитата
Именно из-за безопасности или просто какие-то неудобства для пользователя возможные?

По сути для одного сеанса никакой разницы между сессией и куками нет, просто сессия более удобна для программирования (сессия, тоже самое что и куки которые автоматом передаются между страницами)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.