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

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

01.11.2018, 20:55. Показов 5119. Ответов 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,909
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,909
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,909
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,909
01.11.2018, 21:50
Цитата Сообщение от Step01 Посмотреть сообщение
Ссылку на что?
Вы же сказали, что это элементарные меры безопасности. Значит кто-то где-то в интернете должен был об этом написать и не раз. Я подобного никогда не встречал, поэтому и спрашиваю.

Цитата Сообщение от Step01 Посмотреть сообщение
Тема создана не для того, чтобы обучать вас безопасности.
Разумеется, но форум на то и форум, чтобы вести дискуссии. Я предложил вариант, вы назвали его небезопасным и не пояснили причину, поэтому я и прошу какие-нибудь пруфы.
0
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,893
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,909
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,909
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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru