Безопасный сеанс PHP и файлы cookie

Я не понимаю, почему мы должны защищать файлы cookie и сеанс, у меня есть файл cookie, который хранит пароль пользователя, имя пользователя, зашифрованный пароль.

У меня есть функция, которая проверяет файлы cookie в любой момент, если информация совпадает с информацией в DataBase, если нет, перенаправляется на страницу входа. однако я не понимаю, с каким риском можно просматривать эту информацию и что он может делать с этой информацией.

Может ли кто-нибудь объяснить мне, что такое риск?

Related of "Безопасный сеанс PHP и файлы cookie"

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

Сохранение имени пользователя, пароля пользователя и (зашифрованного) в файле cookie:

  • утечка информации, которая может быть полезной или не пригодной для использования в гнусных целях; т.е. для успешного входа в систему вам нужно имя пользователя и пароль, и вы взмахиваете высоко в воздухе, крича CAPTURE ME , имя пользователя даже в открытом виде
  • полагается исключительно на секретность вашего алгоритма шифрования для пароля; если это станет известно, у вас есть проблема с безопасностью
    • поскольку известен зашифрованный пароль, против него может быть установлена ​​атака с использованием грубой силы в автономном режиме, чтобы выявить алгоритм шифрования и пароль открытого текста; эта атака может быть или не быть чисто теоретической, тот факт, что она вообще существует, должна вас беспокоить
    • если вообще возможно расшифровать пароль, вы уже потеряли; пароль – это секрет, который должен знать только пользователь, даже вы не хотите знать в какой-либо момент, что такое пароль; если вы знаете пароль, у вас есть гигантская ответственность за его защиту, конечно же, вы не хотите посылать его туда и обратно по HTTP все время; → просмотреть хеширование паролей
  • не дает вам никакого контроля над чем-либо, вся информация для входа зависит от клиента (то есть, что вы делаете, если знаете, что какая-либо из вышеперечисленных проблем была скомпрометирована? )
  • не позволяет вам изменять пароли без аннулирования всех активных логинов

С другой стороны, используя только бессмысленный идентификатор сеанса:

  • не показывает никакой полезной информации в файлах cookie
  • нет возможности взломать или переборщить что-либо ценное
  • сервер имеет максимальную мощность, поскольку сеансы могут быть отменены в любое время
  • это проще (проще всегда в безопасности)
  • использование полного сеанса с серверным состоянием позволяет вам эскалации привилегий; например, потребовать от пользователя активного входа в систему с его паролем в течение последних шести минут от текущего IP-адреса, чтобы он мог изменить свой пароль или адрес электронной почты → обеспечивает безопасность, даже если файл cookie сеанса должен быть захвачен

Вкратце: идентификаторы сеанса вообще не имеют поверхности атаки , поскольку они по своей сути бессмысленны. Пользователи, имена и пароли представляют собой очень сочную цель. Именно из этих основных пунктов сеансы должны казаться намного более привлекательными. Предполагая совершенную реализацию с отличной безопасностью, оба должны быть достаточно безопасными. Однако вы не знаете, что у вас есть неуверенность, у вас не будет полной безопасности. Предполагая это, зная это, предпочтительнее простая система с меньшим количеством оговорок.