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'];
}
}
ну типа того
и так же потом можно создать страницу на сайте с сессиями когда входили на сайт, удалять сессии...
Так же сюда можно добавить обновленния сессий, когда новый заход на сайт по кукам, тогда проводить данные входа...
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???
Scammer (22 авг 2023, в 13:11)
А чем вам не нравится jwt? 🤔
Может еще для "echo" отдельную библиотеку прикрутим?
А чем вам не нравится jwt? 🤔
Ramzesoff (22 авг 2023, в 12:04)
Куки пароля в сессиях не хранят. Зачем устраивать сырбор. password_hash() если не устраивает, то sha1. Он в отличии md5, рандомно подставляет в конец строки цифры и буквы, от чего и затрудняет для перевода реального пароля.
А проще, делать сессии с токеном. Сам токен хранить в бд, для сравнения. А не использовать password_hash(), md5, sha1 итд. Взлом к такому будет равен 0.
Токен надо хранить не в бд, а в куках, а в бд хранится его хеш)
Куки пароля в сессиях не хранят. Зачем устраивать сырбор. 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'];
}
}
ну типа того
и так же потом можно создать страницу на сайте с сессиями когда входили на сайт, удалять сессии...
Так же сюда можно добавить обновленния сессий, когда новый заход на сайт по кукам, тогда проводить данные входа...
Создаем таблицу типа 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']);
Хакирь, просто лучший
________
посл. ред. 22.08.2023 в 14:29; всего 5 раз(а); by SNEG
Slava_Ukraini scam [БАН] (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
да есть и такое, я лично пользуюсь md5 + соль
вот смотрите скрин прикрепленный, у всех 4 логина одинаковый пароль Q1234 а хеши пароля разные и все прекрасно работает + я не сохраняю пароль ни в куках ни в сесиях для безопасности. Вот у меня сразу как произошла авторизация 2 токена сверяются еслы оны сходятся то происходит авторизация
такая проверка идет, это пример как работает, не код:
$user[id] == $user[login] == $user[token] == $proverka[token]
и это все должно сойтись чтобы авторизация прошла успешно, еслы чтото одно изменено то проверка не пройдена.
$user[token] == $proverka[token] это 2 разных таблицы в бд, запросы которые передаются в бд при авторизации защищаются от sql инекции и xss.
Ну как то так
SNEG , И где ты указал на оптимизацию в куках и сессиях? ))
За методику формирования уникальной строки, это другая тема.
Может ещё поговорим о базе, методе передачи данных, http серверах, и вообще почему пишем о php, может поговорим о python? import mysql.connector? :)
Когда есть конкретный вопрос, я думаю что должен быть конкретный ответ по теме вопроса. Всё остальное от лукавого которое ведет просто к бабскому базару на 100 500 сообщений в котором теряется вообще какой-то смысл
За методику формирования уникальной строки, это другая тема.
Может ещё поговорим о базе, методе передачи данных, http серверах, и вообще почему пишем о php, может поговорим о python? import mysql.connector? :)
Когда есть конкретный вопрос, я думаю что должен быть конкретный ответ по теме вопроса. Всё остальное от лукавого которое ведет просто к бабскому базару на 100 500 сообщений в котором теряется вообще какой-то смысл
Лара (22 авг 2023, в 15:36)
Ты видимо не знаешь, чем отличается sql и хss
почему SQL инъекция это атака, при которой тот кто хочет взломать вводит в поля ввода данные, содержащие SQL-запросы.Ты видимо не знаешь, чем отличается sql и хss
XSS это атака, при которой злоумышленник внедряет веб-страницу с вредоносным JavaScript-кодом, который будет выполнен на компьютере пользователя, когда тот посещает эту страницу.
с XSS сам сталкивался раньше