|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
Авторизация на сессиях09.09.2016, 12:57. Показов 1143. Ответов 28
Метки нет (Все метки)
Ребяты, подскажите, пожалуйста идеологию авторизации на сессиях (без кук).
Есть БД юзверей. В ней id, логин и пароль в md5 и или иже с ним (соль там и все такое). Стартуем сессию, проверяем, задан ли $_SESSION['id']. Если нет, то отправляем на страницу авторизации. Если задан, то лезем в БД и проверяем, есть ли юзверь с таким id. Если есть, пускаем на страницу, если нет - отправляем опять же на страничку авторизации. Такого подхода достаточно? Или необходимо более надежно защититься? К примеру, кроме $_SESSION['id'] задавать еще какой-нить уникальный для данной сессии $_SESSION['session_hash'], который генерится при авторизации и записывается в БД, а затем проверяется вместе с id? Я вот этот момент не очень понимаю... ну если он нужен, конечно. По мне, так это только для кук надо делать... Можете в двух словах описать безопасный принцип авторизации на сессиях? А то примеров в инете куча, но никто не описывает идеологии: тупо "сделайте так", "сделайте так" и "как видите все просто".
0
|
|
| 09.09.2016, 12:57 | |
|
Ответы с готовыми решениями:
28
Безопасная авторизация на разных устройствах: что хранить в сессиях и куках? Безопасность в сессиях Работа в сессиях |
|
Фрилансер
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
|
||||||||
| 09.09.2016, 13:04 | ||||||||
|
Вот напиши в файле
v2hbsobp11p9jsua528prtgfv5Выйди из браузера, снова войди, он изменится.
1
|
||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 09.09.2016, 13:04 | |
|
1
|
|
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 13:54 [ТС] | |
|
Хорошо, сто он есть, этот идентификатор сессии.. я должен с ним что-то делать?
Например, запоминать в БД, чтобы моего юзера не ломанули? Или вот банально $_SESSION['id'] будет достаточно?
0
|
|
|
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
|
|
| 09.09.2016, 14:04 | |
|
Laroux, чтоб «не ломанули», не используйте сессии без кук
0
|
|
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 14:35 [ТС] | |
|
miketomlin, не люблю я клиентские штуки.. почему чисты PHP великолепен? Да потому, что он все далает на серваке и отдает только html.
Как только дело касается чего-то на компе пользователя и что нужно как-то юзать....
0
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|
| 09.09.2016, 14:39 | |
|
Laroux, сессии используют куки (хотя есть другой способ, без кук, но о безопасности можно забыть). Так что не избежать вам "клиентских штук".
0
|
|
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
| 09.09.2016, 14:45 | |
|
Laroux, не любишь клиентские штуки, делай двухфакторную аудентификацию, думаю объяснять не стоит что придется использовать
0
|
|
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 14:50 [ТС] | |
|
Jodah, ну и все-таки сесии и куки немного разные вещи, согласитесь.
Не, куки не буду юзать принципиально. А если сделать так, к примеру: запомнить в сессию id пользователя, а также getallheaders() в sha256 с какой-нить солью и в каждое обращение кроме id проверять еще и эти заголовки? Спасет?
0
|
|
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|||
| 09.09.2016, 14:52 | |||
|
Добавлено через 1 минуту
0
|
|||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|||
| 09.09.2016, 15:01 | |||
|
0
|
|||
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 15:07 [ТС] | |
|
балин.. чо ж так все сложно-то?
Ок, черт с ним.. как организовать корректно и безопасно авторизацию на куко-сессиях? В двух словах. Особенно интересует, что где должно храниться и в каком виде. Заранее благодарен
0
|
|
|
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
|
|
| 09.09.2016, 15:18 | |
|
Все элементарно. Просто нужно отделять слой PHP-абстракций от реального положения дел/протокола.
Сессия, сохраненная в файле, используется только лишь для того, чтобы немного упростить код и не лезть каждый раз при авторизации в базу. Один раз вытянули данные из базы в сессию и все. Скинул в личку ссылку на статью, где описывается сама суть.
1
|
|
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 16:13 [ТС] | |
|
miketomlin, посмотрел. Т.е. Вы хотите сказать, что авторизация должна реализовываться только на куках, а для данных пользователя, которые будут использован на странице, юзать уже сессии. Сессии никакого отношения к авторизации не имеют?
0
|
|
|
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
|
|
| 09.09.2016, 16:55 | |
|
Я хочу сказать, что сессии – это лишь прослойка для удобства тех, кому лень пару лишних строк самому написать. Плюс по дефолту сессии хранятся в файлах – некоторые считают, что так быстрее. Лично мне сессии только мешают. Чем настраивать их под себя, проще вовсе без них обойтись. sid – это по сути ключ авторизации предопределенного формата, зависящего не от меня. Опять-таки, чем что-то настраивать, мне проще использовать свой аналог, не задумываясь о том, как подогнать сессии под себя.
Добавлено через 12 минут Данные авторизованного пользователя не храню в файле, хотя воссоздать при необходимости дефолтный сессионный механизм хранения данных, как вы понимаете, не составляет особого труда.
1
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
||
| 09.09.2016, 17:07 | ||
Когда гораздо проще обращаться к $_SESSION, чем описывать человеку, как работают куки (в частности setcookie).
1
|
||
|
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
|
|
| 09.09.2016, 17:09 | |
|
Laroux, сессии совсем без кук (это когда вы пихаете sid в адреса страниц), как я вам выше намекнул и написал Jodah, в целях безопасности лучше совсем не использовать. Сам механизм, конечно, может быть полезен в каких-то частных случаях. Например, можете запихнуть ключ авторизации в ссылку активации акка пользователя, только сразу после однократного перехода по ней делайте ссылку недействительной – смените ключ авторизации. В редких случаях возможность входа по одноразовой ссылке может быть полезна, только не нужно всю авторизацию подобным образом строить.
0
|
|
|
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
|
|
| 09.09.2016, 17:16 [ТС] | |
|
miketomlin, да я же не против.
Давайте еще раз, ребят. Потому что много тут уже переписки, а воз (мой, правда ) и ныне там.Исходные данные: 1) предполагаем, что к моей БД с данными пользователей никто не доберется; 2) сессии у меня хранятся на сервере в месте недоступном извне. Из соседнего аккаунта хостинга тоже каталог с фалами сессий недоступен. Что мы делаем: Есть база, в которой хранятся данные пользователя (4 поля): UserID, Login, Password в каком-нить ужасно зашифрованном формате с солями, SessionID. Для проверки "авторизован ли пользователь?" Я использую следующий механизм: стартую сессию, проверяю, существует ли $_SESSION['UserID']. Если нет - редирект на страницу авторизации, а на ней я (при правильном вводе имени и пароля) записываю session_id() этому пользователю в базу в поле SessionID. Если $_SESSION['UserID'] определен, то идем в БД, делаем запрос по `UserID`= $_SESSION['UserID'] и `SessionID` = session_id(). Запрос вернул строку? - велкам! Если же нет - отправляем на страницу авторизации. Можете мне указать на потенциальные уязвимости такого подхода?
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 09.09.2016, 17:25 | |||
|
0
|
|||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
|
|
| 09.09.2016, 17:26 | |
|
Laroux, а зачем session_id в БД сохранять?
0
|
|
| 09.09.2016, 17:26 | |
|
Помогаю со студенческими работами здесь
20
фильтр на сессиях Корзина на сессиях ошибка в сессиях(( Корзина на сессиях Пропадают переменные в сессиях Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|