PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как защитить сессию пользователя ?
Olegarh1a
Отправлено: 15 Февраля, 2021 - 16:27:05
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2021  


Помог: 0 раз(а)




Есть несколько вариантов на сколько они эффективны
1может создать своего рода электронный ключ который будет генерироваться случайно и при заходе проверять его (тогда прийдётся отдельную бд что ли делать если я правильно понимаю) ?
2привязывать сессию к пользователю (например к ip ну такое себе)- как по мне глупый вариант ?
3 Как вы защищаете свой сайт хотя бы расскажите логику Радость
4 Читал на хабре про соль(Salt) так и не понял. может у кого есть отличная статья где, куда, что солить и применение на реальном примере для (тугих Радость )
 
 Top
dcc0
Отправлено: 16 Февраля, 2021 - 17:44:48
Post Id


Участник


Покинул форум
Сообщений всего: 1032
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Доброго! Разве недостаточно для защиты протокола https?
 
 Top
kull
Отправлено: 17 Февраля, 2021 - 20:38:04
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2021  


Помог: 0 раз(а)




Соль - это набор букв, чисел, символов которые подставляются к паролю

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $salt = 'fgdg456gh'; // это набор символов для соли
  4. $password = '12345'; // это пароль который указал юзер в инпуте
  5.  
  6. $psw = sha1($password.$salt); // все готово. md5 для паролей не подходит!
  7.  


так же можно в качестве соли использовать например дату, время в unix формате. В таком случае соль у каждого юзера будет 100% уникальной.

(Отредактировано автором: 17 Февраля, 2021 - 20:39:26)

 
 Top
Lolya
Отправлено: 21 Февраля, 2021 - 10:06:34
Post Id


Забанен


Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2018  


Помог: 0 раз(а)

[+]


dcc0 пишет:
Разве недостаточно для защиты протокола https?

Мда.. А подумать? Или лишь бы ляпнуть?
(Добавление)
Olegarh1a пишет:
Как вы защищаете свой сайт хотя бы расскажите логику


CODE (htmlphp):
скопировать код в буфер обмена
  1. function mksecret($length = 20){
  2. $set = array('a','A','b','B','c','C','d','D','e','E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w','W','x','X','y','Y','z','Z','1','2','3','4','5','6','7','8','9');
  3. $str;for($i = 1; $i <= $length; $i++){$ch = rand(0, count($set)-1);$str .= $set[$ch];}return $str;}
  4.  
  5. if(!mkglobal("wantpassword")) stderr("Error", "<center>".$tracker_lang['dad']."</center><html><head><meta http-equiv=refresh content='5;url=/'></head></html>");
  6.  
  7. $secret = mksecret();$wantpasshash = md5($secret . $wantpassword . $secret);
  8.  
  9. function is_password_correct($password, $secret, $hash){
  10. return ($hash == md5($secret . $password . $secret) || $hash == md5($secret . trim($password) . $secret));}
  11.  
  12. if(!is_password_correct($password, $row['secret'], $row['passhash'])){
  13. // бла-бла-бла забанить или записать неверный вход с подсчетом (5 раз неверно и бан)
  14. }
  15.  
 
 Top
dcc0
Отправлено: 21 Февраля, 2021 - 12:12:00
Post Id


Участник


Покинул форум
Сообщений всего: 1032
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Если на сайте используется md5 + https .
Этого вроде бы обычно достаточно.

(Отредактировано автором: 21 Февраля, 2021 - 12:57:12)

 
 Top
Vladimir Kheifets
Отправлено: 21 Февраля, 2021 - 15:27:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 639
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 30 раз(а)




Lolya пишет:
Мда.. А подумать? Или лишь бы ляпнуть?

Добрый день!
Мда.. не грубовато ли?

По вашему коду:
PHP:
скопировать код в буфер обмена
  1. function mksecret($length = 20){
  2.         $set = array('a','A','b','B','c','C','d','D','e','E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w','W','x','X','y','Y','z','Z','1','2','3','4','5','6','7','8','9');
  3.         $str;
  4.         for($i = 1; $i <= $length; $i++)
  5.         {
  6.                 $ch = rand(0, count($set)-1);
  7.                 $str .= $set[$ch];
  8.         }
  9.         return $str;
  10. }

Зачем нужно в цикле вычислять count($set)-1 и для чего нужен массив $set
Результат не изменится если сделать так:
PHP:
скопировать код в буфер обмена
  1. function mksecret($length = 20){
  2.         $set="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ123456789";  
  3.         $max=strlen($set);
  4.         for($i = 1; $i <= $length; $i++)
  5.         {
  6.                 $ch = rand(1, $max);
  7.                 $str .= $set[$ch];
  8.         }
  9.         return $str;
  10. }
  11.  

по поводу безопасности:
https://www.php.net/manual/ru/fa...sswords.fasthash
Цитата:
Почему популярные хеширующие функции, такие как md5() и sha1() не подходят для паролей?
Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными.
При наличии современных технологий и оборудования, стало довольно просто выяснить результат
этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.
Из-за той скорости, с которой современные компьютеры могут "обратить" эти хеширующие алгоритмы,
многие профессионалы компьютерной безопасности строго не рекомендуют использовать
их для хеширования паролей.

(Отредактировано автором: 21 Февраля, 2021 - 15:28:33)

 
 Top
dcc0
Отправлено: 21 Февраля, 2021 - 16:14:08
Post Id


Участник


Покинул форум
Сообщений всего: 1032
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Vladimir Kheifets,
Доброго! Спасибо за ответ.
Я читал о возможности генерировать коллизии в md5 и sha1.
Видел базы с популярными md5
Однако, показалось, что нахождение коллизий крайне ресурсоёмкая задача.
Слышал про радужные таблицы, но не наблюдал воочию ни одной рабочей программы
для взлома md5 с помощью RainbowCrack.

По идее, если я не ошибаюсь, механизм работы с сайтом по https дополнительно шифрует
передаваемые данные от пользователя к серверу.
Перехватывать данные аткой man-in-the-middle уже смысла особенно нет. Т.е. id сессии и данные в целом будут дополнительно зашифрованы при передаче.

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

Я написал подробно для понимания того, из чего я исхожу. Мне кажется, что стоит оценивать реальные риски при применении нестандартных средств защиты.

(Отредактировано автором: 21 Февраля, 2021 - 16:17:30)

 
 Top
Строитель Модератор
Отправлено: 21 Февраля, 2021 - 17:54:45
Post Id



Участник


Покинул форум
Сообщений всего: 1568
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 72 раз(а)




Lolya, не хамите!


-----
~ PHP-8 & REGEXP - This is a really powerful kit ~
****************************************
 
 Top
Vladimir Kheifets
Отправлено: 21 Февраля, 2021 - 18:14:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 639
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 30 раз(а)




dcc0 пишет:
...Мне кажется, что стоит оценивать реальные риски при применении нестандартных средств защиты.

Вернёмся, к заданному вопросу о защите сессии. Если зломышленник доберётся до сервера, т.е взламает адмим-логин, то ничего не поможет ни соль, не сахар.
Как бы Вы не шифровали пароли Ваших пользователей сайта, установленного на этом сервере.
Про md5 и sha1 и т.д. - "отцы основатели" советуют использовать для шифрования функции crypt и password_hash, а для проверки паролей password_verify.
Про https, да это важно для безопасности, особенно при работе с платёжными сервисами через cUrl.
Конечно, защита должна быть адекватна возможному ущербу от взлома.
Между прочим, начиная с января этого год действует новый стандарт 3D Secure 2 (3DS2).
Это действительно серьёзно, т.к. придётся переделывать существущие интерфейсы.

(Отредактировано автором: 21 Февраля, 2021 - 18:17:28)

 
 Top
Lolya
Отправлено: 22 Февраля, 2021 - 09:06:25
Post Id


Забанен


Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2018  


Помог: 0 раз(а)

[+]


Vladimir Kheifets пишет:
Мда.. не грубовато ли?

Строитель пишет:
Lolya, не хамите!

А где вы оскорбление увидели? Или то что человек не думая выдает глупые мысли это нормально? Не смешите. HTTPS не спасает от воровства, от слова никак. Читать надо прежде чем ерунду писать.
 
 Top
Vladimir Kheifets
Отправлено: 22 Февраля, 2021 - 14:09:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 639
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 30 раз(а)




Lolya пишет:
Vladimir Kheifets пишет:
Мда.. не грубовато ли?

Строитель пишет:
Lolya, не хамите!

А где вы оскорбление увидели? Или то что человек не думая выдает глупые мысли это нормально? Не смешите. HTTPS не спасает от воровства, от слова никак. Читать надо прежде чем ерунду писать.

Добрый день!
Объяснять и переубеждать в некоторых случаях бесполезно.
Попробуйте сказать кому-то, глядя в глаза, то что Вы пишите и не считаете грубостью.
Желательно, выбрать собеседника поздоровее.
Удачи!
 
 Top
Lolya
Отправлено: 22 Февраля, 2021 - 18:20:47
Post Id


Забанен


Покинул форум
Сообщений всего: 58
Дата рег-ции: Май 2018  


Помог: 0 раз(а)

[+]


Vladimir Kheifets пишет:
Желательно, выбрать собеседника поздоровее.

Я на самбо и техвандо ходила, хоть и слабая девушка, но выдать могу неглядя кому надо пилюлей.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB