node.js – connect/expressjs中的“已签名”Cookie是什么?

我试图找出什么“签名的cookie”实际上是。
网上没有太多,如果我试试这个:

app.use(express.cookieParser('A secret'));

但仍然… Cookies在浏览器上仍然是100%正常,我不知道什么是“signed”在这里(我希望“看到”一些奇怪的客户端,像数据加密使用“秘密”作为盐?)

文档说(https://github.com/expressjs/cookie-parser):

Parse Cookie header and populate req.cookies
with an object keyed by the cookie names. Optionally
you may enabled signed cookie support by passing
a secret string,which assigns req.secret so
it may be used by other middleware.

有人知道吗?

Merc。

解决方法

Cookie仍然可见,但它具有签名,因此它可以检测客户端是否修改了Cookie。

它的工作原理是创建一个HMAC的值(当前cookie),并base64编码。当cookie被读取时,它重新计算签名,并确保它匹配附加到它的签名。

如果它不匹配,那么它会给出一个错误。

如果你想隐藏cookie的内容,你应该加密它(或只是存储在服务器端会话)。我不知道有没有中间件已经有或没有。

编辑

并创建一个签名的cookie,你会使用

res.cookie('name','value',{signed: true})

并且要访问签名的cookie使用req的signedCookies对象:

req.signedCookies['name']

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...