Cookies 如何创建一个加密的cookie,它也有一个标志/签名来确定可能的篡改(PHP)?

Cookies 如何创建一个加密的cookie,它也有一个标志/签名来确定可能的篡改(PHP)?,cookies,encryption,e-commerce,Cookies,Encryption,E Commerce,我一直在试图找出如何在cookie中存储一些变量,以确保它是加密和签名的,从而避免篡改。但我不知道如何创建加密,听说创建自己的加密不是一个好主意。我也不知道如何创建签名。 如何准确地为cookie创建签名? 我应该如何创建自己的加密来隐藏存储在cookie中的信息 谢谢。第一件事:你需要接受这样一个事实:没有办法使cookie安全,用户总是可以篡改它 您应该存储在cookie中的唯一内容是基本首选项(如用户希望在您的站点上看到的主题)和标识符(我将在下面讨论) 如果您想以安全的方式存储有关用户的

我一直在试图找出如何在cookie中存储一些变量,以确保它是加密和签名的,从而避免篡改。但我不知道如何创建加密,听说创建自己的加密不是一个好主意。我也不知道如何创建签名。 如何准确地为cookie创建签名? 我应该如何创建自己的加密来隐藏存储在cookie中的信息


谢谢。

第一件事:你需要接受这样一个事实:没有办法使cookie安全,用户总是可以篡改它

您应该存储在cookie中的唯一内容是基本首选项(如用户希望在您的站点上看到的主题)和标识符(我将在下面讨论)


如果您想以安全的方式存储有关用户的信息,可以在cookie中保存某种ID号,并使该ID号与存储在服务器上的数据相对应

说真的,别这么做。只在cookie中输入一个标识符,用于在自己的数据库中定位相应的信息。首先,您永远无法解决用户可以替换旧版本cookie数据的问题。我不会存储敏感信息,但我也不想让人们知道我如何将信息存储在数据库中。我需要它来装购物车。我希望能够学习如何对cookie进行签名,以及对其进行加密以隐藏如何将其存储在数据库中。同样:非敏感信息将被存储。只需在数据库中为cookie设置一列即可。让饼干完全随机。将其存储在用户的计算机和数据库中。然后,当你找回cookie时,在你的数据库中查找它,那里有安全可靠的数据。你让这条路变得更加困难了。@Andy如果它不敏感,不要担心用户编辑它。但是,如果您确实希望它是安全的,请将其存储在服务器端,以便用户无法查看和编辑它。会话ID是以这种方式存储信息的一种很好(也很简单)的方法。我明白你的意思了。你说随机是什么意思?比如制作两个cookie,一个用于客户端,另一个用于数据库,然后对它们进行比较以确保两者匹配?对不起,我每天都是网络开发新手,但我正在努力学习。就像我告诉大卫的,我知道这一点。我的问题不是存储什么。存储一个ID确实解决了这个保持私有的问题。假设用户出于良好的意图使用该网站,则不会发生篡改。但是让我们假设我只使用了一个ID,是什么阻止了一个心怀恶意的人改变号码。把它和其他人联系起来。在这一点上,我无法知道是否有人更改了cookie来执行此操作。@Andy会话劫持是可能的。然而,如果您使用8位数字ID,则有100000000种可能的组合,而有人猜测有意义的ID的可能性微乎其微。当然,你可以登上别人的电脑“窃取”他们的ID,但是复制别人的购物车有什么害处呢?这是真的,但是假设你有成千上万的用户,这种猜测的可能性更高。但我明白你的意思。购物车是一个想法,但我也想让用户选择保持登录。由于用户将能够在他们的个人资料中看到地址和其他信息,我宁愿让其他人通过加密或签名来猜测正确的ID,如果这样做有意义的话。