Шифрование куки в PHP - PullRequest
       25

Шифрование куки в PHP

11 голосов
/ 15 апреля 2010

Как я могу зашифровать, а затем расшифровать значение cookie в PHP (насколько безопасным будет шифрование)

Ответы [ 5 ]

8 голосов
/ 15 апреля 2010

Существует множество различных способов шифрования информации в файлах cookie и в других местах. Степень шифрования будет зависеть от метода, который вы выбрали для фактического шифрования. mycrypt - хорошее место для начала. См. Этот ответ для примера использования mcrypt.

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

0 голосов
/ 23 мая 2011

Я могу придумать разумное применение для этого. Предположим, у вас есть большая ферма серверов, у вас будет узкое место в базе данных и / или на сервере memcached для обработки запросов сеанса. "Этот пользователь вошел в систему?"

Если бы вы сохраняли данные сеанса пользователя в виде зашифрованного значения в файле cookie, то вы можете избежать необходимости выполнять довольно много операций чтения / записи и разрешить хранение файлов cookie неограниченного размера, поскольку на вашей стороне нет 0 чем процессор, связанный для шифрования / дешифрования данных cookie.

Ruby on Rails по умолчанию делает это - хотя он только подписывает данные и не шифрует их. Существует альтернативная реализация, которая шифрует данные с помощью своего собственного ключа и подписи, поэтому вы, пользователь, не можете видеть, какие данные вы храните в своем сеансе.

0 голосов
/ 09 марта 2011

Если cookie-файл надежно зашифрован (например, с помощью секрета, хранящегося на сервере, который регулярно меняется), я не вижу проблем с хранением полезных данных в cookie-файле. Зачем хранить его на сервере? Заставьте клиента сделать некоторую работу для изменения - особенно если это предпочтения. Почему сервер должен постоянно хранить и извлекать данные из файла сеанса? Что делать, если на вашем сайте сотни тысяч пользователей? Теперь вам нужно поддерживать сотни тысяч файлов сессий.

0 голосов
/ 22 апреля 2010

Я полностью согласен с другими ответами: если данные действительно конфиденциальны, они должны храниться на стороне сервера в сеансе, а не в файле cookie.

Что касается способов шифрования содержимого файлов cookie, расширение PHP Suhosin предоставляет возможность прозрачного шифрования всех файлов cookie . Если у вас есть возможность установить расширения PHp, это может быть для вас легче, а может и не быть проще, чем написание собственной схемы шифрования.

0 голосов
/ 16 апреля 2010

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

Нас другой стороны, если вы создаете аутентификацию, вам следует использовать сеансы вместо создания секретных зашифрованных значений cookie.Сессии не были реализованы ни за что, они - путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...