Loading...
PHP/MySQL | Оптимизация работы с сессиями и куки
А чем вам не нравится jwt? 🤔
Создаем таблицу типа session со след. структурой:>
create table session (id int unsigned auto_increment primary key,
session char(32),
user_id int unsigned not null,
create_time..user_agent...
короче всё что хотим сохранять..

вторая таблица с юзверями
create table user (id int unsigned auto....
login, password.....

при регистрации заносим данные в user всё по стандарту, какие-то проверки, какие-то что то не суть не та тема.
при авторизации проверяем данные логин и пароль если ок, тянем ид юзверя кпримеру 100
тогда генерируем нашу хеш строку по типу
$session = md5(mt_rand().'_'.$user_id.'_'.microtime().'_'.mt_rand().'_'.$_SERVER['HTTP_USER_AGENT']);
заносим наши данные в таблицу session
insert into session set session=$session, user_id=$user_id.....
закрепляем в браузере
$_SESSION['user_id'] = $user_id;
setcookie('hash', $session);

как проверить в браузере что юзер
if(isset($_SESSION['user_id'])){
есть авторизация
}elseif(isset($_COOKIE['hash'])){
$sql ... select * from session where session=$_COOKIE['hash'];
if(!isset($sql['id'])){
setcookie("hash","");
}else{
$_SESSION['user_id']=$sql['user_id'];
}
}

ну типа того

и так же потом можно создать страницу на сайте с сессиями когда входили на сайт, удалять сессии...
Так же сюда можно добавить обновленния сессий, когда новый заход на сайт по кукам, тогда проводить данные входа...
Ramzesoff ,
sha1. Он в отличии md5, рандомно подставляет в конец строки цифры и буквы
WAT??? *038*
Scammer (22 авг 2023, в 13:11)
А чем вам не нравится jwt? 🤔
Может еще для "echo" отдельную библиотеку прикрутим? :-)
Ramzesoff (22 авг 2023, в 12:04)
Куки пароля в сессиях не хранят. Зачем устраивать сырбор. password_hash() если не устраивает, то sha1. Он в отличии md5, рандомно подставляет в конец строки цифры и буквы, от чего и затрудняет для перевода реального пароля.

А проще, делать сессии с токеном. Сам токен хранить в бд, для сравнения. А не использовать password_hash(), md5, sha1 итд. Взлом к такому будет равен 0.
Токен надо хранить не в бд, а в куках, а в бд хранится его хеш)
nicefile (22 авг 2023, в 14:11)
Создаем таблицу типа session со след. структурой:>
create table session (id int unsigned auto_increment primary key,
session char(32),
user_id int unsigned not null,
create_time..user_agent...
короче всё что хотим сохранять..

вторая таблица с юзверями
create table user (id int unsigned auto....
login, password.....

при регистрации заносим данные в user всё по стандарту, какие-то проверки, какие-то что то не суть не та тема.
при авторизации проверяем данные логин и пароль если ок, тянем ид юзверя кпримеру 100
тогда генерируем нашу хеш строку по типу
$session = md5(mt_rand().'_'.$user_id.'_'.microtime().'_'.mt_rand().'_'.$_SERVER['HTTP_USER_AGENT']);
заносим наши данные в таблицу session
insert into session set session=$session, user_id=$user_id.....
закрепляем в браузере
$_SESSION['user_id'] = $user_id;
setcookie('hash', $session);

как проверить в браузере что юзер
if(isset($_SESSION['user_id'])){
есть авторизация
}elseif(isset($_COOKIE['hash'])){
$sql ... select * from session where session=$_COOKIE['hash'];
if(!isset($sql['id'])){
setcookie("hash","");
}else{
$_SESSION['user_id']=$sql['user_id'];
}
}

ну типа того

и так же потом можно создать страницу на сайте с сессиями когда входили на сайт, удалять сессии...
Так же сюда можно добавить обновленния сессий, когда новый заход на сайт по кукам, тогда проводить данные входа...

md5(mt_rand().'_'.$user_id.'_'.microtime().'_'.mt_rand().'_'.$_SERVER['HTTP_USER_AGENT']);

Хакирь, просто лучший .sarcasmic.
________
посл. ред. 22.08.2023 в 14:29; всего 5 раз(а); by SNEG
Slava_Ukraini [!] [БАН] (22 авг 2023, в 9:27)
да есть и такое, я лично пользуюсь md5 + соль

вот смотрите скрин прикрепленный, у всех 4 логина одинаковый пароль Q1234 а хеши пароля разные и все прекрасно работает + я не сохраняю пароль ни в куках ни в сесиях для безопасности. Вот у меня сразу как произошла авторизация 2 токена сверяются еслы оны сходятся то происходит авторизация

такая проверка идет, это пример как работает, не код:
$user[id] == $user[login] == $user[token] == $proverka[token]
и это все должно сойтись чтобы авторизация прошла успешно, еслы чтото одно изменено то проверка не пройдена.

$user[token] == $proverka[token] это 2 разных таблицы в бд, запросы которые передаются в бд при авторизации защищаются от sql инекции и xss.

Ну как то так
Ты видимо не знаешь, чем отличается sql и хss
SNEG , И где ты указал на оптимизацию в куках и сессиях? ))
За методику формирования уникальной строки, это другая тема.
Может ещё поговорим о базе, методе передачи данных, http серверах, и вообще почему пишем о php, может поговорим о python? import mysql.connector? :)
Когда есть конкретный вопрос, я думаю что должен быть конкретный ответ по теме вопроса. Всё остальное от лукавого которое ведет просто к бабскому базару на 100 500 сообщений в котором теряется вообще какой-то смысл
nicefile , ок хакирь
Лара (22 авг 2023, в 15:36)
Ты видимо не знаешь, чем отличается sql и хss
почему SQL инъекция это атака, при которой тот кто хочет взломать вводит в поля ввода данные, содержащие SQL-запросы.

XSS это атака, при которой злоумышленник внедряет веб-страницу с вредоносным JavaScript-кодом, который будет выполнен на компьютере пользователя, когда тот посещает эту страницу.

с XSS сам сталкивался раньше
Онлайн: 1
Время:
Gen. 0.0955
(c) ByMAS.RU 2010-2025