【问题标题】:PHP: Hashing or encrypting a shopping bag ID to store into cookie [closed]PHP:散列或加密购物袋ID以存储到cookie中[关闭]
【发布时间】:2012-06-15 21:09:45
【问题描述】:

访问者购物袋中的物品与 bagID 相关联。 如果用户修改了网站,我想向他们展示以前的包内容。

我不确定将 bagID 存储在客户端 pc cookie 上的方法、加密或必须。 如果别人知道的话,包里的东西没什么好怕的。

opt1:将 bagID + 唯一盐值存储到用户 cookie 中
散列 bagID + salt 可以访问包内容。每个袋子的盐都是独一无二的,所以
如果有人从用户那里检索到这个 cookie,他只能访问这个特定用户的包内容。

opt2:加密 bagID。
一个缺点好像做好会很慢。

opt3:?

如果两者中的一个是一个不错的选择,那么对于这种情况,哪种哈希算法或加密算法是值得推荐的?

【问题讨论】:

  • 所以您编辑问题并删除 opt3 之后 这成为答案?如果你能详细说明一下就好了。
  • "如果现在其他人愿意的话,包里的东西没什么好怕的。"这意味着将物品添加到另一个人的包(他们将被运送和计费)的能力没什么好怕的?
  • bagID = 数据库中某个表的主键?如果不是,为什么不呢?如果是这样,这样做的方法不是使用 cookie 或任何依赖客户端发回一些敏感数据的东西,而是创建一个 bagID -> userID 关系表(假设用户可以随着时间的推移拥有多个 bagID ,否则 users 表中的 bagID 列就足够了)并使用 userID 来获取 bagID。通过这种方式,您可以对后端进行编码,使任何人都无法查看其他用户的包,除非他们侵入该用户的帐户。
  • @Damon 这就是我寻找安全/良好解决方案的原因
  • @DaveRandom bagID 是表的主键。我很想知道像 asos.com 和 yoox.com 这样的网站是如何存储包内容的(我猜他们使用 cookie)。您不必被烧死以保留您的包内容。

标签: php cookies encryption hash


【解决方案1】:

你让它变得比它需要的更复杂。根本不要存储bagID。为包创建唯一哈希,将其存储在包的数据库表中,并根据该唯一哈希检索包内容。

【讨论】:

  • 你说得对,谢谢,这就是我为每个哈希使用不同的盐来解决它的方法。
【解决方案2】:

我了解您希望将整个包的内容存储在客户端 cookie 中吗?这是可能的,但由于对 cookie 的长度和内容的许多限制,不建议这样做。只需将包中的所有物品存储在本地数据库中,并由客户 ID 键入。

SQL 列会去:

client_id (not unique), item_id, amount
(repeat for as many times as many positions you have)

在大多数非 SQL 中,您可以只使用对象数组。

而且,顺便说一句,这与 PHP 无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2021-10-15
    • 2017-06-26
    • 2011-03-30
    • 2012-12-02
    • 2010-12-06
    • 1970-01-01
    相关资源
    最近更新 更多