首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >饼干还是本地仓库?

饼干还是本地仓库?
EN

Stack Overflow用户
提问于 2020-04-24 09:10:42
回答 1查看 1.3K关注 0票数 1

背景:我有两个应用程序前端和后端。后端是djangodjango rest framework。我用的是记号。客户端通过post登录时获取令牌。客户端将此令牌设置为header,并在localStorage中保留令牌。我将令牌保存到localStorage以防止重新打开站点后的第二个请求。但是我写了很多文章,其中写到localsStorage是脆弱的,它容易受到xss的攻击。现在我喜欢上cookies了。但我不想重写我的后端逻辑。我正在考虑通过js把令牌写到cookie上。

我的问题是:我应该给cookies写令牌吗?还是应该重写后端应用程序和使用会话?或者mb不重写它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 09:19:23

cookies和本地存储也同样容易在客户端被篡改:客户端可以查看和修改这两种扩展,它们拥有的任何(可能是恶意的)扩展也是如此。但是,如果与站点的连接是通过HTTPS进行的,并且它们的browser/OS/hardware没有恶意窥探到的东西,那么cookie或本地存储就不会有问题。

它们之间的主要区别是,cookie通过每个网络请求被发送到服务器,而本地存储则停留在用户的硬盘上,而不被发送到服务器。

可以说,cookie比本地存储更容易受到攻击,因为如果cookie是通过未加密的连接发送的,它可以被拦截--但是本地存储留在客户端的机器上,因此被恶意的东西拦截的可能性更小。但是,如果连接是加密的,而且应该是加密的,那么使用cookie就可以了。

如果您的脚本要求将令牌与请求一起发送到服务器,则应该使用cookie,以便在后端检查它们。(如果您使用本地存储,您将不得不在每个请求中手动发送令牌,这仍然是可能的,但考虑到cookie可以在不需要手动干预的情况下完成同样的事情,这是有点不雅观的。)

如果您的脚本不需要在每个请求中发送令牌,那么如果需要的话,可以随意使用本地存储。如果服务器在生成令牌之后不需要查看它,那么就不要使用cookie,因为它将无缘无故地造成不必要的开销。

上述相同的一般逻辑适用于客户端的任何数据。如果服务器经常或有时需要查看它,如果数据不太大,cookie是一个很好的选择。如果服务器不需要查看它,则cookie是错误的选择。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61404882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档