Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70

Авторизация с использованием куки

01.11.2018, 20:55. Показов 5045. Ответов 41
Метки нет (Все метки)

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

Авторизация и куки
всем здрасти. Подскажите пожалуйста, почему если пытаться авторизоваться с http://localhost/domain/index.php - ничего не происходит и не...

Авторизация через куки, использовать или нет?
Всем привет, делаю сайт, сегодня сделал авторизацию и у меня встал вопрос, читав книгу php глазами хакера, увидел что авторизацию через...

Авторизация с куки
Всем привет! Есть скрипт ,работает, но не могу понять почему приходится 2 раза вводить валидную пару лог/пасс для авторизации....

41
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
01.11.2018, 21:13
Лучший ответ Сообщение было отмечено Para bellum как решение

Решение

Генерируете длинную рандомную строку и записываете её в куки и базу. И сравниваете их при заходе на каждую страницу.

Ну и id юзера тоже записываете и сравниваете, чтобы перед записью рандомной строки в базу не нужно было проверять её на уникальность.
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
01.11.2018, 21:18  [ТС]
Если строка не хеширована, то способ ненадёжный. Когда на сайте пользователи держат персональные данные так нельзя делать
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
01.11.2018, 21:25
Цитата Сообщение от Step01 Посмотреть сообщение
Если строка не хеширована, то способ ненадёжный.
Чем? Зачем вам именно хэш в куках?

Цитата Сообщение от Step01 Посмотреть сообщение
Когда на сайте пользователи держат персональные данные так нельзя делать
Почему?
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
01.11.2018, 21:29  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
хэш в куках?
Хеш не в куках, а в БД
Цитата Сообщение от Jodah Посмотреть сообщение
Почему?
Это элементарные меры безопасности
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
01.11.2018, 21:40
Цитата Сообщение от Step01 Посмотреть сообщение
Хеш не в куках, а в БД
Хорошо. Зачем вам хешированная строка, чем она отличается от обычной?

Цитата Сообщение от Step01 Посмотреть сообщение
Это элементарные меры безопасности
Ок, можете скинуть какую-нибудь ссылку в качестве подтверждения?

Добавлено через 6 минут
Цитата Сообщение от Step01 Посмотреть сообщение
Получается, нужно один раз авторизацию делать и записывать данные в сессию?
При старте сессии юзеру отправляется кука с именем PHPSESSID. Поэтому этот вариант будет работать также, как предложенный мной, только больше лишних звеньев.
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
01.11.2018, 21:40  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
Ок, можете скинуть какую-нибудь ссылку в качестве подтверждения?
Ссылку на что? На взломанный сайт?
Тема создана не для того, чтобы обучать вас безопасности. В сети полно информации. Здесь задан конкретный вопрос
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
01.11.2018, 21:50
Цитата Сообщение от Step01 Посмотреть сообщение
Ссылку на что?
Вы же сказали, что это элементарные меры безопасности. Значит кто-то где-то в интернете должен был об этом написать и не раз. Я подобного никогда не встречал, поэтому и спрашиваю.

Цитата Сообщение от Step01 Посмотреть сообщение
Тема создана не для того, чтобы обучать вас безопасности.
Разумеется, но форум на то и форум, чтобы вести дискуссии. Я предложил вариант, вы назвали его небезопасным и не пояснили причину, поэтому я и прошу какие-нибудь пруфы.
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,874
02.11.2018, 12:30
Цитата Сообщение от Step01 Посмотреть сообщение
Тема создана не для того, чтобы обучать вас безопасности. В сети полно информации. Здесь задан конкретный вопрос
Jodah в своем первом сообщении дал достаточно полный ответ на ваши вопросы.
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.11.2018, 13:04
Ответ Jodah верен. Автор темы вообще не понял, о чём речь.
2
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
02.11.2018, 13:35
На самом деле подобное хэширование действительно имеет место быть. БД могут угнать или какой-то сотрудник воспользуется доступом к БД в своих целях... в таком случае знание хэша само по себе ничего не даст.
Цитата Сообщение от Step01 Посмотреть сообщение
А это нагрузка на сервер, ведь хеширование производится долго
С чего вы взяли что долго?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
02.11.2018, 13:44
Цитата Сообщение от tarasalk Посмотреть сообщение
БД могут угнать или какой-то сотрудник воспользуется доступом к БД в своих целях...
Если вы имеете ввиду хеширование пароля перед записью в базу - полностью согласен. Но что и зачем предлагает хешировать ТС, я так и не понял.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
02.11.2018, 13:51
Jodah, я так понял речь про куку. Зная ее можно делать запросы от имени юзера без всяких паролей.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.11.2018, 13:54
Цитата Сообщение от Jodah Посмотреть сообщение
Но что и зачем предлагает хешировать ТС, я так и не понял.
Ту строку хочет хешировать перед записью в БД, которую вы предложили генерировать. Чтобы кто-то не мог, взломав БД, подставить ту строку к себе в cookie и авторизоваться на сайте таким образом.

Я считаю, что хешировать её не нужно. Лучше шифровать содержимое cookie, например, как в Laravel. Тогда и сотрудник, упомянутый tarasalk'ом не сможет cookie подделать и любой другой злоумышленник.
1
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
02.11.2018, 15:06  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
что и зачем предлагает хешировать ТС, я так и не понял
Я ничего не предлагаю. Я спрашиваю, как делается авторизация с использованием куки. Предложили держать в базе данных незашифрованный пароль и записывать его в куки. Я спорить ни с кем не собираюсь, просто хочу найти другие идеи, а точнее способ, который обычно используется на реальных сайтах. Насчёт шифрования куки понял, но не уверен, что я смогу хорошо зашифровать. Хеширование надёжнее
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.11.2018, 15:11
Лучший ответ Сообщение было отмечено Step01 как решение

Решение

Цитата Сообщение от Step01 Посмотреть сообщение
Насчёт шифрования куки понял, но не уверен, что я смогу хорошо зашифровать.
openssl поможет.
1
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
02.11.2018, 15:39  [ТС]
Насколько я понимаю, расшифровка имеет свою стоимость. Чем тогда это отличается от сравнения с хэшем? В любом случае, при переходе пользователя по страницам эту расшифровку придётся каждый раз делать. Я хочу понять, на практике так делают, или авторизацию в сессию записывают или это как-то по-другому делается
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
02.11.2018, 18:12
Цитата Сообщение от Step01 Посмотреть сообщение
Предложили держать в базе данных незашифрованный пароль и записывать его в куки.
Ни в коем случае, пароль хранится в БД в виде хеша, сгенерированного функцией password_hash и в куках не используется. А в куки (и базу тоже) отправляется длинная строка из случайных символов, никак не связанных с паролем.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.11.2018, 19:15
Цитата Сообщение от Step01 Посмотреть сообщение
Я хочу понять, на практике так делают, или авторизацию в сессию записывают или это как-то по-другому делается
Делают.
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 70
02.11.2018, 20:04  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
отправляется длинная строка из случайных символов
Я именно этот пароль имел в виду. Какой смысл хешировать один пароль, если есть другой незашифрованный. Если их украдут, то оба))
Цитата Сообщение от Para bellum Посмотреть сообщение
Делают.
Ясно, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2018, 20:04
Помогаю со студенческими работами здесь

Регистрация / Авторизация / Куки / Сессия
Приветствую, не спящие. Предисловие: В интернете конечно много существует разных решений относительно алгоритма регистрации и далее. ...

Авторизация срабатывает только со второго раза нормально и в куки записывается введенный логин.
Приветствую всех знатоков, объясните пожалуйста мне вот такую вещь! Вот у меня код: <?php setcookie('login_cookie', '',...

Создание входа в приложение с использованием куки
Пробую создать вход в админ панель через cookie. Если пользователь еще не вошел то должна быть форма входа, но если уже вошел то сама...

Авторизация с использованием COOKIE
Всем привет. Делаю лабораторную работу по PHP. Задача: Сделать страницу, на которой разместить форму авторизации. Предварительно в txt...

Авторизация php+mysql + куки
Всем добрый день. Пишу сайт, нужна авторизация. Решил использовать это: http://habrahabr.ru/post/13726/ Все сделал как там,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru