» WAP Мастер Форум https://forum.wapinet.ru/index.php » PHP https://forum.wapinet.ru/viewforum.php?id=3 » авторизация $_COOKIE https://forum.wapinet.ru/viewtopic.php?id=1223 |
nord » 2011.02.19 21:32 | ||||||||||||||||
вобщем меня давно интересует такой вопрос , есть пароль я зашифровал его в md5 потом еще в base64 | ||||||||||||||||
DarkDaNTe » 2011.02.19 22:00 | ||||||||||||||||
А как авторизоваться-то? base64 - бред | ||||||||||||||||
TLENS » 2011.02.19 23:10 | ||||||||||||||||
nord | ||||||||||||||||
Gemorroj » 2011.02.19 23:24 | ||||||||||||||||
не нужно было тут base64 ни в каком варианте | ||||||||||||||||
nord » 2011.02.20 08:18 | ||||||||||||||||
а как это все правильно сделать дайте маленький пример? Чтобы понять как это работает с куками не работал ни когда | ||||||||||||||||
DarkDaNTe » 2011.02.20 17:46 | ||||||||||||||||
$pass = md5($_POST['pass']); | ||||||||||||||||
Gemorroj » 2011.02.20 18:49 | ||||||||||||||||
вообще, не нужно хранить в куках пароль. там нужно хранить идентификатор сессии. а в самой сессии уже все данные. | ||||||||||||||||
TLENS » 2011.02.20 19:19 | ||||||||||||||||
И что это будет? | ||||||||||||||||
nord » 2011.02.21 08:02 | ||||||||||||||||
да да оно самое а как это правильно сделать можно поподробнее пожалуйста? | ||||||||||||||||
Gemorroj » 2011.02.21 10:29 | ||||||||||||||||
ну что еще можно рассказать-то? конкретней вопрос задай. | ||||||||||||||||
nord » 2011.02.21 10:38 | ||||||||||||||||
как это делать и как потом это все проверять можно маленький пример пожалуйста? | ||||||||||||||||
Gemorroj » 2011.02.21 10:51 | ||||||||||||||||
Код:
| ||||||||||||||||
nord » 2011.02.21 12:49 | ||||||||||||||||
на сессиях я делал авторизацию , и на куках тоже получаеться но журил я хеш возьму и вставлю на другом компе в оперу то я авторизуюсь под этой учетной записью, или от этого защититься нельзя? | ||||||||||||||||
Gemorroj » 2011.02.21 13:02 | ||||||||||||||||
да, вставишь. защититься можно проверяя IP, Браузер, их сочетание. | ||||||||||||||||
nord » 2011.02.21 15:06 | ||||||||||||||||
а как можно по ip проверить если но динамический? | ||||||||||||||||
Gemorroj » 2011.02.21 15:11 | ||||||||||||||||
никак. | ||||||||||||||||
TLENS » 2011.02.21 18:19 | ||||||||||||||||
Ну можно создать таблицу в её писать id юза и какой нибудь хеш ну и браузер хеш отправить в куку а и после простоя сесии сравнить хеш браузер ну и еще какие то данные это на сколько фантазии хватит и если все сходится авторизовуем ну и меняем хеш. | ||||||||||||||||
TLENS » 2011.02.21 18:30 | ||||||||||||||||
Ну или время жизни сессии поставить на 5 часов | ||||||||||||||||
nord » 2011.02.21 21:40 | ||||||||||||||||
спасибо большое всем за помощь хоть немного разобрался) | ||||||||||||||||
Istsam » 2011.02.22 12:52 | ||||||||||||||||
а можно $pass = md5(base64($_POST['pass'])); Код:
| ||||||||||||||||
TLENS » 2011.02.22 22:10 | ||||||||||||||||
Istsam | ||||||||||||||||
Vynderkind » 2011.03.30 03:15 | ||||||||||||||||
если делать с помощю сесии то авторизация не будет слетать? | ||||||||||||||||
Gemorroj » 2011.03.30 08:20 | ||||||||||||||||
всегда есть вероятность потери сессии (пользователь удалил куку, на сервере что-то случилось с хранилищем сессий...) | ||||||||||||||||
НЕЗНАЙКА » 2011.04.01 18:40 | ||||||||||||||||
Или же место на сервере закончилось! Я у себя в подержку написал о переполнении дык сказали сделаем. Неделю где-то папка сессии растет:-) круто, да? | ||||||||||||||||
tipsun » 2011.04.09 23:57 | ||||||||||||||||
Я вообще не понимаю что к чему тут, но хочу разобраться :) Код:
| ||||||||||||||||
Gemorroj » 2011.04.10 00:04 | ||||||||||||||||
http://php.net/session_start ответы всегда в мануале. | ||||||||||||||||
tipsun » 2011.04.10 00:38 | ||||||||||||||||
Это кто там такую фигню в посте #25 пишет??! :D Код:
| ||||||||||||||||
tipsun » 2011.04.10 13:43 | ||||||||||||||||
Вот я не пойму, зачем в куки все суют браузеры, ипы... Он же на отдельном компе каждого хранится. Код:
Базу не трогать, т.к. все равно с файла вытащить это все быстрее будет, как я понял. | ||||||||||||||||
Gemorroj » 2011.04.10 13:51 | ||||||||||||||||
что за дибилизм, трудно в мануал заглянуть? | ||||||||||||||||
tipsun » 2011.04.10 13:58 | ||||||||||||||||
http://habrahabr.ru/blogs/php/28418/ o_O | ||||||||||||||||
Gemorroj » 2011.04.10 14:14 | ||||||||||||||||
там просто проблема с тем, что папка переполнялась. | ||||||||||||||||
tipsun » 2011.04.10 14:16 | ||||||||||||||||
Понял. СПС. | ||||||||||||||||
tipsun » 2011.04.10 16:14 | ||||||||||||||||
Вот shit, поговнокодить не дают... http://phpfaq.ru/sessions | ||||||||||||||||
Nu3oN » 2011.04.10 21:53 | ||||||||||||||||
Зачем так мудрить? чем обычный подход к этому делу не устроил? | ||||||||||||||||
tipsun » 2011.04.10 23:01 | ||||||||||||||||
Не, ну там написано типа для гостей не надо сессию начинать, как я понял. | ||||||||||||||||
tipsun » 2011.04.11 22:39 | ||||||||||||||||
Заблудился я совсем... | ||||||||||||||||
tipsun » 2011.04.12 14:58 | ||||||||||||||||
Набросок Код:
| ||||||||||||||||
Gemorroj » 2011.04.12 16:02 | ||||||||||||||||
перед тем как делаешь session_destroy сделай еще и $_SESSION = null; | ||||||||||||||||
DarkDaNTe » 2011.04.12 19:22 | ||||||||||||||||
Код:
и почитай как удалять куки еще | ||||||||||||||||
tipsun » 2011.04.12 20:06 | ||||||||||||||||
Спс всем. Буду еще думать. Код:
| ||||||||||||||||
tipsun » 2011.04.13 18:29 | ||||||||||||||||
Вот сделал. Подскажите пожалуйста, нет ли ошибок? А то я вот только начал use PDO... Код:
Друг подсказал, что надо и браузер в это дело подключить и еще ип сравнивать только по 3м первым диапазонам. 4ый меняется. | ||||||||||||||||
Nu3oN » 2011.04.14 00:04 | ||||||||||||||||
вместо $db->exec("SET NAMES 'utf8';"); делай так Код:
Вместо fetch(PDO::FETCH_ASSOC); укажи один раз, и вс =) Код:
Вот это: Код:
Сделай как плагинизацию (в котором ты будешь разширять класс пдо) такой метод Код:
В общем глянь как это в роторе сделано! удобней чем каждый раз это все писать! | ||||||||||||||||
tipsun » 2011.04.14 00:09 | ||||||||||||||||
Спс :) | ||||||||||||||||
Gemorroj » 2011.04.14 11:29 | ||||||||||||||||
http://php.net/ChangeLog-5.php#5.3.6 | ||||||||||||||||
tipsun » 2011.04.14 12:01 | ||||||||||||||||
Ахринеть, это только сессия! :D Код:
| ||||||||||||||||
tipsun » 2011.04.17 10:49 | ||||||||||||||||
Чет мне народ говорит, что говнокод. | ||||||||||||||||
Gemorroj » 2011.04.17 11:03 | ||||||||||||||||
я вообще не понимаю, нафига ты что-то мудришь? ты банковскую систему чтоли пишешь? идентифицируй пользователя по сессии и хватит. если пользователь умудрился потерять потерять куки, то ему уже ничто не поможет, ИМХО. | ||||||||||||||||
tipsun » 2011.04.17 11:11 | ||||||||||||||||
Вебмани хотел переплюнуть :D Код:
| ||||||||||||||||
НЕЗНАЙКА » 2011.04.17 13:02 | ||||||||||||||||
Зачем вообще на куках делать? Сессия же интереснее и никто не увидит хэш. | ||||||||||||||||
Gemorroj » 2011.04.17 13:43 | ||||||||||||||||
| ||||||||||||||||
tipsun » 2011.04.17 17:45 | ||||||||||||||||
Да, спс, шикарно. И в конце разъединяет. | ||||||||||||||||
tipsun » 2011.09.13 21:55 | ||||||||||||||||
Код:
| ||||||||||||||||
WapStyle » 2011.09.13 23:45 | ||||||||||||||||
Шифруй пароли с мусором | ||||||||||||||||
Gemorroj » 2011.09.13 23:51 | ||||||||||||||||
это называется "соль", а не мусор) | ||||||||||||||||
WapStyle » 2011.09.13 23:52 | ||||||||||||||||
Гемор её поразному можно назвать )) | ||||||||||||||||
TLENS » 2011.09.13 23:53 | ||||||||||||||||
Я вобще не пойму зачем шифровать. | ||||||||||||||||
DarkRiDDeR » 2011.09.14 08:46 | ||||||||||||||||
Ну кто-то спёр базу, допустим, а там пороли. Дык зашифрованные ещё надо расшифровать, а это большие проблемы, и если ещё получится это сделать. | ||||||||||||||||
Gemorroj » 2011.09.14 08:58 | ||||||||||||||||
DarkRiDDeR, тут есть проблема с тем, что соль, как правило, хранится рядом с паролями. И при брутфорсе ее так же можно смешивать. | ||||||||||||||||
DarkRiDDeR » 2011.09.14 13:23 | ||||||||||||||||
Ну соль сильно не будет влиять на усложнение расшифровки, к тому же, если удасться расшифровать пару паролей, у них будет одинаковый конец - соль, хотя... Я думаю md5 хватит. Ну я использую md5(sha1()), пусть расшифровывают, это намного труднее, чем всякие соль. | ||||||||||||||||
tipsun » 2011.09.14 23:28 | ||||||||||||||||
Это при сохранении в базу? | ||||||||||||||||
TLENS » 2011.09.15 01:31 | ||||||||||||||||
Но зачем расшифровывать, если можно просто вставить в заголовок c куками и произвести авторизацию. | ||||||||||||||||
Gemorroj » 2011.09.15 08:32 | ||||||||||||||||
это да, частая ошибка. | ||||||||||||||||
DarkRiDDeR » 2011.09.15 09:30 | ||||||||||||||||
Ну я про куки не говорил, в куки пароль воопще незачем пихать, хоть зашифрованны, хоть незашифрованный. Для авторизации существуют сесси, они для этого и созданы, и нечего делать авторизацию на куках: возможностей меньше и защита меньше. | ||||||||||||||||
tipsun » 2011.10.08 21:25 | ||||||||||||||||
Или я снова, как всегда, не понимаю сути, или... Код:
А так, при авторизации, если юзер нажмет запомнить. Код:
| ||||||||||||||||
WapStyle » 2011.10.08 23:13 | ||||||||||||||||
Давать пасс в куку (даже шифрованный) не есть айс. Как делаю я | ||||||||||||||||
tipsun » 2011.10.09 14:10 | ||||||||||||||||
Время отсчитывается от последнеого обращения посетителя т.е. это время доступа к файлу, а не создания. | ||||||||||||||||
tipsun » 2012.02.10 12:11 | ||||||||||||||||
С механизмом запоминания наверно можно так поступить: | ||||||||||||||||
Gemorroj » 2012.02.10 17:49 | ||||||||||||||||
можно еще при "запомни меня" время жизни сессии принудительно ставить большое. | ||||||||||||||||
tipsun » 2012.02.10 21:37 | ||||||||||||||||
Получается session_id() в базу надо будет заносить. | ||||||||||||||||
tipsun » 2012.02.10 23:19 | ||||||||||||||||
Насчет сроков не посмотрел. Ну регерится с теми же сроками или нет. Код:
| ||||||||||||||||
Gemorroj » 2012.02.11 09:56 | ||||||||||||||||
$_COOKIE['PHPSESSID'] - лучше не использовать дефолтовое название, а ставить свое | ||||||||||||||||
tipsun » 2012.02.11 12:59 | ||||||||||||||||
Код:
| ||||||||||||||||
Gemorroj » 2012.02.11 13:25 | ||||||||||||||||
да и не SID тоже, лучше подгонять под конкретный проект. на вапинете скажем, сессия SID может ставится и в блогах и на форуме. в таком случае они будут перезаписывать друг друга. | ||||||||||||||||
tipsun » 2012.02.13 15:42 | ||||||||||||||||
Чет не удаляется печенюха с "лисы". Код:
Добавлено спустя 6 минут 39 секунд: Код:
| ||||||||||||||||
tipsun » 2012.02.13 18:21 | ||||||||||||||||
И зачем session_get_cookie_params() вообще нужна, если она нифига не работает... | ||||||||||||||||
Gemorroj » 2012.02.13 18:26 | ||||||||||||||||
работает в соответствии с документацией. | ||||||||||||||||
tipsun » 2012.02.14 00:34 | ||||||||||||||||
Код:
Добавлено спустя 8 минут 17 секунд: | ||||||||||||||||
tipsun » 2012.02.14 00:44 | ||||||||||||||||
Ну можно довести сохранение файла сессии до 60*60*6 = 6 часов или сделать 12 часов, не знаю. | ||||||||||||||||
tipsun » 2012.02.14 14:56 | ||||||||||||||||
Вроде, готово. Код:
| ||||||||||||||||
tipsun » 2012.02.29 16:10 | ||||||||||||||||
В базе нужно будет помимо `session_id` сделать еще `session_expire`, а то кука удалится, а поле в базе с этим `session_id` будет активна. | ||||||||||||||||
tipsun » 2012.03.04 03:01 | ||||||||||||||||
Код:
| ||||||||||||||||
tipsun » 2012.03.04 12:39 | ||||||||||||||||
Вопрос, как лучше? | ||||||||||||||||
Gemorroj » 2012.03.04 12:39 | ||||||||||||||||
ключ с session_expire вероятно лучше убрать | ||||||||||||||||
tipsun » 2012.03.04 12:40 | ||||||||||||||||
Ок. Спс. | ||||||||||||||||
tipsun » 2012.03.04 13:36 | ||||||||||||||||
Код:
| ||||||||||||||||
tipsun » 2012.03.09 01:14 | ||||||||||||||||
Только сейчас додумался, что можно пароль и потом проверить. Вот дурья башка. Код:
| ||||||||||||||||
tipsun » 2012.06.29 10:57 | ||||||||||||||||
Хотел в класс запихать код для старта сессии при получении печеньки и при присутствии/отсутствии файла сессии, но чет не знаю как практичней. | ||||||||||||||||
tipsun » 2012.06.29 12:24 | ||||||||||||||||
Еще думал, как принимать тучу параметров печенья. Код:
Добавлено спустя 5 минут 54 секунды: | ||||||||||||||||
Gemorroj » 2012.06.29 13:11 | ||||||||||||||||
файлы в случае с сессиями устроят в 95% случаев, так что замачиваться я бы не стал. либо сразу писать прослойки для работы с сессиями в разных хранилищах. | ||||||||||||||||
tipsun » 2012.06.29 13:17 | ||||||||||||||||
Ну если файлы использовать. | ||||||||||||||||
tipsun » 2012.06.29 17:07 | ||||||||||||||||
Хм. А что мне мешает сделать все без сессии? | ||||||||||||||||
tipsun » 2012.06.29 18:09 | ||||||||||||||||
Либо у меня горячка, либо озарение простых вещей :) Код:
Добавлено спустя 1 минуту 56 секунд: | ||||||||||||||||
tipsun » 2012.06.29 18:26 | ||||||||||||||||
Cookie сгенерировать и засунуть в базу. Срок годности 3 дня, допустим. Или как-то так. | ||||||||||||||||
tipsun » 2012.06.30 00:44 | ||||||||||||||||
Да, на этом форуме вроде, как я посмотрел, такая же схема. | ||||||||||||||||
tipsun » 2012.06.30 17:08 | ||||||||||||||||
Если без срока в базе, то можно будет взломать, нет? | ||||||||||||||||
WapStyle » 2012.07.03 21:21 | ||||||||||||||||
Выдавай в куки временный хеш...например если чел авторизировался ему в куки хеш..вышел кеш заменяется на любой случайный...если не дурак поймёш | ||||||||||||||||
tipsun » 2012.07.03 23:21 | ||||||||||||||||
WapStyle, спасибо за идею. :) Код:
| ||||||||||||||||
tipsun » 2012.07.03 23:41 | ||||||||||||||||
Потом еще подумаю. | ||||||||||||||||
tipsun » 2012.07.06 14:38 | ||||||||||||||||
WapStyle, да. Очень хорошее решение. | ||||||||||||||||
tipsun » 2012.07.06 17:49 | ||||||||||||||||
Это уже раздел cron наверно. Надо будет почитать что и как там. | ||||||||||||||||
tipsun » 2012.07.12 14:55 | ||||||||||||||||
Чет я не понял что да как там. Показать/Скрыть [* m] [* h] [* d] [* m] [* y] /phpPath/ /scriptPath/ | ||||||||||||||||
Gemorroj » 2012.07.12 18:40 | ||||||||||||||||
ну этого и достаточно. | ||||||||||||||||
tipsun » 2012.07.20 14:35 | ||||||||||||||||
Допустим можно узнать папку с PHP: Код:
Можно узнать путь к файлу исполнения: Код:
А куда пихать созданный файл cgi непонятно. Код:
И думал может нафиг это все, | ||||||||||||||||
Gemorroj » 2012.07.20 15:57 | ||||||||||||||||
$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку | ||||||||||||||||
tipsun » 2012.07.20 16:25 | ||||||||||||||||
Код:
| ||||||||||||||||
Gemorroj » 2012.07.20 16:50 | ||||||||||||||||
tipsun | ||||||||||||||||
tipsun » 2012.07.20 20:14 | ||||||||||||||||
Это к алгоритму или ко времени относится в данном случае? | ||||||||||||||||
tipsun » 2012.07.20 21:06 | ||||||||||||||||
Надо будет срок_актуальности_печеньки хранить в UNIX_TIMESTAMP. | ||||||||||||||||
tipsun » 2012.07.22 21:07 | ||||||||||||||||
Лучше? Код:
| ||||||||||||||||
Gemorroj » 2012.07.23 00:02 | ||||||||||||||||
лучше. но UPDATE тоже переделай на параметризованный запрос. так же проверяй не только $q->rowCount() но и чтобы execute возвратил true | ||||||||||||||||
tipsun » 2012.07.23 00:07 | ||||||||||||||||
Ok. Спс. | ||||||||||||||||
tipsun » 2012.07.26 14:38 | ||||||||||||||||
Как-то так? Код:
| ||||||||||||||||
Gemorroj » 2012.07.26 15:36 | ||||||||||||||||
$q в пером запросе тоже проверяй | ||||||||||||||||
tipsun » 2012.07.26 15:39 | ||||||||||||||||
Так вроде проверяется. Код:
| ||||||||||||||||
Gemorroj » 2012.07.26 19:24 | ||||||||||||||||
Код:
| ||||||||||||||||
tipsun » 2012.07.26 19:54 | ||||||||||||||||
Ого. | ||||||||||||||||
tipsun » 2012.07.27 22:31 | ||||||||||||||||
Я решил fetch() тоже не обременять. Код:
| ||||||||||||||||
tipsun » 2012.07.30 20:48 | ||||||||||||||||
habrahabr.ru/post/13726 - хорошая статья. | ||||||||||||||||
Gemorroj » 2012.07.30 21:57 | ||||||||||||||||
tipsun, 2007 год) | ||||||||||||||||
tipsun » 2012.07.30 22:38 | ||||||||||||||||
Да..., не умею я пользоваться поисковиком. :) |