Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264

Что хранить в куке авторизации

03.02.2017, 04:58. Показов 1806. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Впервые столкнулся с написанием собственного скрипта регистрации-авторизации. Вопрос таков: что хранить в куке авторизации, чтобы определять пользователя?

Как я понимаю задачу: при успешном входе каждый раз генерируется уникальный хеш, который записывается в куку и бд одновременно. Потом при дальнейшем заходе на сайт, если кука существует, то по её хешу производится поиск в бд и, если, пользователь с таким хешем существует, то выводится, что он авторизован. Но ведь куку можно украсть и подделать, как быть с этим? Можно отдельным полем хранить ip, но для юзеров, которые используют сервис с разных точек интернета - не вариант.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2017, 04:58
Ответы с готовыми решениями:

Что хранить в сессиях для авторизации
Сразу перейду к делу! Чтобы проверить авторизован ли пользователь я проверяю существует ли у него сессия $_SESSION, и исходя из этого...

Можно ли хранить статус авторизации в сессии?
Здравствуйте, подскажите пожалуйста правильно ли я делаю и если нет как правильно? И так регистрация. После проверки данных создается...

Возможно ли хранить данные сkeditor в txt фаиле или это не правильно там их хранить?
В пред идущих темах я начал разбираясь с установкой этого чудесного редактора. У меня вопрос возможно ли хранить данные сkeditor в txt...

15
94 / 94 / 68
Регистрация: 26.03.2015
Сообщений: 248
03.02.2017, 08:42
Цитата Сообщение от Jackky Посмотреть сообщение
что хранить в куке авторизации, чтобы определять пользователя?
Значение, которое позволит вам однозначно идентифицировать пользователя в базе данных помимо хэша. Например, id или login. Когда я изучал эту тему, то обратил внимание, что обычно используется id.
Цитата Сообщение от Jackky Посмотреть сообщение
при успешном входе каждый раз генерируется уникальный хеш, который записывается в куку и бд одновременно.
Верно.
Цитата Сообщение от Jackky Посмотреть сообщение
Потом при дальнейшем заходе на сайт, если кука существует, то по её хешу производится поиск в бд и, если, пользователь с таким хешем существует, то выводится, что он авторизован.
Не совсем так. Поиск пользователя в базе данных осуществляется по уникальному полю (id или login), а затем хэш из базы данных сравнивается с хэшем из куки, и если они совпадают, то пользователь авторизуется.
Цитата Сообщение от Jackky Посмотреть сообщение
Но ведь куку можно украсть и подделать, как быть с этим?
С этим вопросом помочь не смогу, сам бы хотел знать на него ответ. Насколько я знаю, для повышения безопасности используется SSL, но детально эту тему я не изучал.
1
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264
03.02.2017, 08:59  [ТС]
Спасибо!
Цитата Сообщение от ns16 Посмотреть сообщение
Не совсем так. Поиск пользователя в базе данных осуществляется по уникальному полю (id или login), а затем хэш из базы данных сравнивается с хэшем из куки, и если они совпадают, то пользователь авторизуется.
Т.е. нужно ставить две куки? id и хеш? И встречный вопрос, коли хеш уникальный, почему одного его не хватит?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
03.02.2017, 10:03
Цитата Сообщение от Jackky Посмотреть сообщение
коли хеш уникальный, почему одного его не хватит
Можно и без ID, главное не допускать одинаковых хэшей в базе.
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.02.2017, 12:31
Верно, только при помощи id проще гарантировать уникальность.

Jackky, можете совместить «хэш» с id в одной куке. Вот почитайте: Как сделать авторизацию пользователя?
1
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264
03.02.2017, 12:55  [ТС]
Хорошо, я всё понял, а по поводу безопаности куки - без ssl делать нечего?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.02.2017, 13:15
Это в основном касается безопасности куки при ее транспортировке. В целом же для повышения безопасности нужно использовать многофакторную аутентификацию и, возможно, авторизацию (вы там IP вроде упоминали), короткое время жизни ключа в отсутствии пролонгации и т.п.
0
 Аватар для Rurr
23 / 23 / 11
Регистрация: 12.01.2013
Сообщений: 223
03.02.2017, 13:51
для большей безопасности можешь разрешать авторизоваться пользователю только с того ип адреса с которого он входил раньше, для этого его тоже нужно записать в базу. При таком варианте подмена кук практически невозможна.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
03.02.2017, 14:53
Rurr, IP тоже можно подделать.
0
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264
03.02.2017, 18:22  [ТС]
Короче я понял, вывод таков: покуда я не интернет-банк пишу, а простой сайтик с мини соц.сетью внутри, где никакой жизненно важной инфы нету, денег тоже, а пароль я нигде публично не храню, то безопасность аккаунта - проблема юзеров, которые кликают на все порнобаннеры в сети и не снимают галочки "установить яндекс бар".
0
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264
04.02.2017, 22:08  [ТС]
Ан нет, не всё. Только вот обнаружил, что если залогинится под тем же акком в другом браузере, хеш меняется и в первом браузере он уже не действителен. Но так быть не должно. Сейчас все переключаются, то с телефона сидят, то с компа. Как это решить? Хранить сериализованный массив хешей?
0
05.02.2017, 01:19

Не по теме:

Т.е. не стали читать...

0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
05.02.2017, 06:35
Цитата Сообщение от Jackky Посмотреть сообщение
Вопрос таков: что хранить в куке авторизации, чтобы определять пользователя?
уникальный хэш, символов так на 32, без всяких ID
а в БД по нему закрепляется IP, который сверяется с владельцем хэша во время авторизации
если совпало, то берётся ID из той же строчки и работаем

Цитата Сообщение от Jackky Посмотреть сообщение
Сейчас все переключаются, то с телефона сидят, то с компа. Как это решить? Хранить сериализованный массив хешей?
несколько хэшей для одного ID, можно ограничить пятью например

безопасность через HTTPS
а если у юзера увели куку, значит есть доступ к его компу, это не ваша забота
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
06.02.2017, 11:43
Алгоритм представляю такой:
1. Пользователь залогинился на сайте, записываются в куки и в БД хеш и IP пользователя.
2. При повторном авторизации пользователя с другого IP - выводится просьба для повторении ввода пароля, только.

Цитата Сообщение от Jackky Посмотреть сообщение
Только вот обнаружил, что если залогинится под тем же акком в другом браузере, хеш меняется и в первом браузере он уже не действителен.
Так думаю правильно. При каждой авторизации меняется хеш и в БД и в куках. А куки как известно храняться в браузерах, следовательно другого пути нет.
0
33 / 34 / 13
Регистрация: 06.04.2012
Сообщений: 264
06.02.2017, 11:52  [ТС]
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
Так думаю правильно. При каждой авторизации меняется хеш и в БД и в куках. А куки как известно храняться в браузерах, следовательно другого пути нет.
Да нет, вон на любом сайте я могу зайти одновременно и с хрома и мозиллы и с оперы и с другого компьютера и нигде связь не рвётся. Просто на крутых сайтах в профиле есть ещё кнопочка "завершить все сессии". так что здесь надо как-то умнее...
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
07.02.2017, 12:16
Цитата Сообщение от ns16 Посмотреть сообщение
для повышения безопасности используется SSL

Не по теме:

скоро на всех просторах интернета :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2017, 12:16
Помогаю со студенческими работами здесь

Что делать после авторизации?
Я не давно начал изучать пхп, написал регистрацию+авторизацию. Но проблема в том што я не могу понять как мне сделать так : после того...

Безопасная авторизация на разных устройствах: что хранить в сессиях и куках?
Здравствуйте! Возник вопрос безопасной авторизации на разных устройствах. Вопрос состоит в том, что не могу определится что хранить...

Что использовать как идентификатор авторизации: куки или сессии?
Доброго времени суток! На моём сайте есть авторизация: 1. Пользователь вводит логин/пароль 2. На сервере есть таблица users и там 2...

После авторизации повторно перекидывает обратно на страницу авторизации
Так, у меня есть проблема. Как только авторизируюсь, перекидывает обратно на авторизацию. Вот код, login.php: <? ...

Что оптимальнее: хранить картинку в БД или хранить в базе только путь к ней?
Доброго времени суток. Сайт посвящен игровой тематике. На сайте есть раздел в котором используются .gif анимации для демонстрации...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru