cookie和session到底怎么选

最近碰到一个web里面用户跳转的问题. 系统的登录使用了公司的SSO登录认证, 跳转referrer信息在redirect的过程中丢失了. 经过一顿搜索, 发现可以在后端使用cookie或者session来处理. 到底用哪个呢, 先做个对比.

cookie的缺点

  • cookie的数据完全不受我们控制, we do not control the data.
  • 如果那些数据不受我们控制, 我们在使用这些数据的时候需要格外的小心(cookie可能会被用户修改, 删除甚至被恶意拦截修改)
  • 用户的浏览器可能关闭了cookie的功能.
  • 最后从私心出发, flask 的cookie设置好麻烦啊, 懒的搞.

session的优点

  • 更安全, session里面的东西对client是不可见的, 如果是比较私密的数据, 当然首选session
  • session的timeout也是可控的

session的缺点

  • 存储在session中的数据太大了, 会占用很多内存, 影响性能

综合来考虑, 使用cookie还是session可以分一些场景, 如果数据敏感性不是很高, 且数据量会比较大的, 可以存储在cookie中. 数据较小的可以存在session中.
因为想要存储一个跳转前的链接, 数据量不大, session timeout时间可以控制在8小时内, 对性能的影响不会很大.

Reference

  • https://www.calhoun.io/securing-cookies-in-go/

你可能感兴趣的:(cookie和session到底怎么选)