在我工作的组织中,对以下内容进行了严肃的辩论。
情景:
有一个有6种不同属性的POJO都是Strings类型。这些值需要作为cookie保存,以便在有人在网站上进行预订时可以将其恢复。 POJO中的这些值表示将客户带到站点的引用者。在将其推入cookie之前,它将转换为json格式并存储在cookie中。检索它时检索并反序列化为POJO。我没有看到任何大问题,但其他人似乎反对它并且是一个快速的管理会议,我不知道你为什么认为它是坏的?这真的很糟糕,如果是这样的话为什么?
附加说明:
有检查以确保它是有效值,并且在存储到cookie之前它是base64编码的。因此,从安全角度来看,即使有人骇客也不会有这样的担忧。
答案 0 :(得分:1)
我想答案取决于你对这些问题的回答:
既然您永远不会相信客户请求中的任何内容,那么黑客可能会产生哪些有害影响欺骗pojo值?
通过将对象发送到客户端,是否会暴露黑客永远不会看到的任何内部实现细节?
是否有适当的机制允许POJO对象改变"形状" (即添加新属性),以便从客户端发送的旧POJO在将其反序列化为较新的应用程序版本时不会破坏应用程序?
您能否保证价值不会超过maximum cookie size
如果这些问题没有引发任何问题,那么我就不会发现在Cookie中维护用户特定值的问题