php 如何加密cookie值?

s8vozzvw  于 2023-01-29  发布在  PHP
关注(0)|答案(5)|浏览(144)

如何在PHP中加密和解密cookie值?加密的安全性如何?

4uqofj5v

4uqofj5v1#

有很多不同的方法可以加密cookies和其他地方的信息。加密的强度会因您选择的实际加密方法而异。mycrypt是一个很好的起点。请参阅此答案中使用mcrypt的示例。
我不建议在cookie中放入任何敏感的内容,即使它是加密的。对某些人来说太诱人了。如果可以的话,尝试坚持会话。

kyxcudwk

kyxcudwk2#

我完全同意其他人的回答:如果数据确实是敏感的,则应将其存储在会话中的服务器端,而不是Cookie中。
至于加密cookie内容的方法,Suhosin PHP扩展提供了透明加密所有cookie的能力。如果你有能力安装PHp扩展,这可能比你自己编写加密方案更容易,也可能不容易。

xienkqul

xienkqul3#

如果cookie被安全地加密(例如,我认为在cookie中存储有用的数据是没有问题的。为什么要在服务器上存储呢?让客户端为更改做一些工作--特别是当它是首选项时。为什么服务器必须不断地从会话文件中存储和检索数据呢?如果你有成千上万的用户访问你的网站怎么办?现在你必须维护成千上万的会话文件。

nbysray5

nbysray54#

我可以想到一个合理的用法,假设你有一个大型的服务器场,在数据库和/或memcached服务器处理会话请求时会遇到瓶颈。“这个用户登录了吗?”
如果您要将用户会话数据作为加密值存储在Cookie中,则可以避免执行相当多的读/写操作,并允许无限大小的Cookie存储,因为除了对Cookie数据的加密/解密造成CPU限制外,对您的影响为零。
Ruby on Rails默认是这样做的--尽管它只对数据进行签名而不进行加密。有一个替代的实现,它使用自己的密钥和签名对数据进行加密,这样用户就无法看到您在他们的会话中存储了什么数据。

oprakyz7

oprakyz75#

我不能简单地认为加密cookie中的数据是有用的。如果你想保留关于用户或他的偏好的秘密数据,信息,无论什么,然后将其存储在服务器上的文件中,会话中或数据库中,而不是客户端的计算机中。
另一方面,如果你创建一个认证,那么你应该使用会话而不是创建秘密加密的cookie值。会话不是无缘无故实现的,它们是要走的路。

相关问题