Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Функция запомнить меня
И пароль и логин хранится в куках браузера , а если хакер прочитает куки этого браузера, а там все написано: имя пользователя, пароль и сайт на котором нужно войти.
Подскажите как этого избежать?
----- Так было, так есть и так будет
Prog
Отправлено: 24 Апреля, 2010 - 14:03:38
Частый гость
Покинул форум
Сообщений всего: 207
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
А чего не пользоваться сессиями ?
vanicon
Отправлено: 24 Апреля, 2010 - 15:57:29
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Как в этом случае можно использовать сессии ?
----- Так было, так есть и так будет
Монстр_11111
Отправлено: 24 Апреля, 2010 - 16:37:01
Частый гость
Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
Зашифровываешь пароль функцией md5 и ставишь на куки.
setcookie('password', md5($_POST['password']), time()+9999999);
PS Сохраняй пароль в шифрованном виде не только в куках,но и в базе.
markus4
Отправлено: 24 Апреля, 2010 - 17:09:53
Гость
Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Рискну поспорить...
Если хакер украдёт кук, написанный так как написал автор, тогда всё. Даже если он зашифрован будет. Хакер просто поставит его себе и всё. Потом зайдёт и сменит пароль.
Я тут написал на досуге статейку по защите и привязки, есть очень интересные решения, главное, протестированы. Позже выложу тут.
Вот так реализована защита кукиса у меня:
Во первых кукис должен быть один, а не 2 как у тебя:
$coock_text = $login."+".$pass;
// Символ плюса для будущего разделения.
Во-вторых, делаем защиту от кражи кукиса привязкой:
Привязываем юзера к его браузеру и скрину экрана.
$coock_text = $login."+".$pass."+".$time.$brouzer.$screan;
// 3 последних параметра пишем не прямо, а в виде их кодов, так короче.
В данной ситуации:
a=3 (разновидности браузеров)
// я кратенько, без подвидов, иначе ещё больше... IE, Opera, Лиса.
b=5 ( 5 - это варианты скрина : 600Х800, 1024Х768 и т.д. всего допустим 5)
Общая вероятность a Х b = 15
А теперь = шифруем кукис.
Итак, хакер украл мой кукис. Расшифровать его он не сможет, т.к. я использую собственный php-алгос, шифрующий 2048-битным ключом с 2048 битным раундом.
О расшифровке говорить смешно, это не md5.
Хакеру остаётся поставить себе мой кукис "как есть", и рискнуть.
Вариантов немного, всего 15, скажете вы...
А много и не надо, т.к. совпадение должно быть с первого раза!
Если совпадения нет - кукис на сервере немедленно уничтожается, и выводим товарищу окно запроса. если это настоящий пользователь - ничего страшного, он просто зашел с другого компа, снова введёт пароль, не обидится.
А если хакер - облом.
Итак, что мы имеем: у хакера шанс 1 из 15 - сыграть в рулетку.
Далее направление понятно - увеличить вероятность вариантов.
Мы её и увеличиваем: параметр Локальное_Время_Юзера.
Мы по умолчанию считаем, что он сидит на одном месте в своём городе, и не пересекает часовые пояса.
с=24
вероятность = (a X b X c) = 360
Это уже неплохо.
Ну, если мало 360, на очереди - маска IP, вид операционки...
----- Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
Prog
Отправлено: 24 Апреля, 2010 - 18:37:43
Частый гость
Покинул форум
Сообщений всего: 207
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
Тут сессии не помогут , если ты хочешь что бы запоминало надолго то ток куки .
Монстр_11111
Отправлено: 24 Апреля, 2010 - 21:28:32
Частый гость
Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
markus4 Вероятно вы опытный кодер, но по мне ваш способ танец с бубном какой то ) Раз уж так, то можно просто сделать соль в куках с айпи и юзер агентом посетителя у которого эти куки хранятсо.
markus4
Отправлено: 24 Апреля, 2010 - 23:05:45
Гость
Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Можно и так конечно. Кто спорит. Главное не забывать, что всё привычное стареет со временем. Насчёт опытного пичипи кодера - ошибаетесь. Пичипи я всего месяц как курю, и то урывками. Надо было реализовать отстук (в ботнете). Кто действительно опытный пичипи кодер с незамутнёным взглядом - так это JustUser.
----- Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
vanicon
Отправлено: 25 Апреля, 2010 - 09:19:35
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Как сделать соль в куках с айпи и юзер агентом посетителя?
----- Так было, так есть и так будет
JustUserR
Отправлено: 25 Апреля, 2010 - 12:11:28
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
markus4 пишет:
Пичипи я всего месяц как курю, и то урывками. Надо было реализовать отстук (в ботнете). Кто действительно опытный пичипи кодер с незамутнёным взглядом - так это JustUser.
Благодарю Однако в данной темы вы али весьма исчерпывающий и правильный ответ - в общем случае защита cookies заключается в следующиих позициях - если в них хранятся логин и пароль то в них также должен храниться и определенных набор данных подставляемых со стороны сервера (Хотя они могут частично передаваться туда от клиента с помощью Iframe/AJAX) и вся cookie должна быть захеширована (По сути безвозвратно зашифрована) - и тогда если злоумышленник поставт себе такую то он с одной стооны не сможет вытащить пароль (Ибо захеширована безвозвратно) и не может поставить ее себе (Ибо часть его параментов не сходятся) Но с третьей стороны если хакер украл данный cookie то он скорее всего может узнать и информацию пользователя - в том числе версию браузера и тд и сэмулировать себе такие же - поэтому основной упор можно делать на IP (Одно только неудобство если у пользователя IP-адрес меняется слишком часто) и на локальное время (То есть ограниченное время действие cookie - такая защита похоже на защиту в различных картах оплаты/кредитных картах которые имеют скок активации/действия)
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 25 Апреля, 2010 - 15:52:55
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
А так можно будет расшифровать пароль, если хакер скачает файл с куками.
Или если он просто его скачает и поставит себе, сможет ли он войти и сменить пароль.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
vanicon пишет:
А так можно будет расшифровать пароль, если хакер скачает файл с куками.
Или если он просто его скачает и поставит себе, сможет ли он войти и сменить пароль.
Расшифровать данный файл cookie и вытащить из него пароль не получится в любом случае поскольку md5 это безвозвратное хеширование (Конечно нет ничего невозможного и md5 можно редуцировать http://ru[dot]wikipedia[dot]org/wiki/Радужные_таблицы ) Поэтому даже если хакер сможет скопировать себе ваш cookie-файл и параметры вашего браузера и ОС для полного сходства - то в вашем распоряжении остается IP-адрес и время действия cookie (Последнее особенно актуально - поскольку позволяет защищаться от bruteforce-методов подбора)
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
markus4
Отправлено: 26 Апреля, 2010 - 07:56:31
Гость
Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Добавлю, что алгоритм можно написать так, что использовать перебор не получится, т.к. после первого же неправильного варианта запись о кукисе юзера уничтожится, и ему в любом случае нужно будет ввести пароль и получить новый кукис. Что конечно же намного повышает безопасность.
----- Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
JustUserR
Отправлено: 26 Апреля, 2010 - 12:47:59
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
markus4 пишет:
Добавлю, что алгоритм можно написать так, что использовать перебор не получится, т.к. после первого же неправильного варианта запись о кукисе юзера уничтожится, и ему в любом случае нужно будет ввести пароль и получить новый кукис. Что конечно же намного повышает безопасность.
В этом вы конечно правы - однако это тоже весьма стнадартный механихм защиты применяющийся в технология безопасности (Тот же самый PIN-код который можно вводить как правило 3 раза) Конечно для пользователя это может создать небольшие неудобства - если качество интернета плохое и ему приходится частенько переподключаться и получать новый IP-адрес - но безопасность дороже vanicon А если на вашем сайте безопасность чрезмерно важна то можете использовать еще более сложные методы - например специальный ActiveX-элемент с цифровой подписью При этом ключ генерируется не на основе просто IP-адреса и скажем разрешения экрана - ведь ActiveX-элемент может получать дотсуп к данным системы и производить более точную идентификацию пользователя
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
vanicon
Отправлено: 26 Апреля, 2010 - 17:08:02
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.