Mer*_*erc 99 cookies connect node.js express
我试图找出实际上是什么"签名的cookie".网上没有多少,如果我试试这个:
app.use(express.cookieParser('A secret'));
Run Code Online (Sandbox Code Playgroud)
但是仍然......浏览器上的Cookie仍然100%正常,我真的不知道"签名"在这里是什么(我有点希望"看到"客户端上的一些奇怪之处,就像使用加密的数据一样作为盐的"秘密"?)
文档说(https://github.com/expressjs/cookie-parser):
解析Cookie标头并填充
req.cookies由cookie名称键入的对象.(可选)您可以通过传递一个secret字符串来启用已签名的cookie支持,该字符串req.secret可以被其他中间件使用.
有人知道吗?
芝加哥商业交易所.
sta*_*er2 113
cookie仍然可见,但它有一个签名,因此它可以检测客户端是否修改了cookie.
它的工作原理是创建值的HMAC(当前cookie),并对其进行base64编码.当cookie被读取时,它会重新计算签名并确保它与附加的签名相匹配.
如果不匹配,则会出错.
如果你想隐藏cookie的内容,你应该加密它(或者只是将它存储在服务器端会话中).我不确定那里是否有中间件.
编辑
并创建一个您将使用的签名cookie
res.cookie('name', 'value', {signed: true})
Run Code Online (Sandbox Code Playgroud)
要访问已签名的cookie,请使用以下signedCookies对象req:
req.signedCookies['name']
Run Code Online (Sandbox Code Playgroud)
小智 24
和emostar一样,Yup提到它只是为了确保价值没有被篡改.它放在一个不同的对象(req.signedCookies)中,以区分两者,允许开发人员显示意图.如果它们与其他人一起存储在req.cookies中,则可以简单地制作一个同名的未签名cookie,从而击败它们的整个目的.
And*_*man 11
我一直在寻找相当广泛的答案...并且查看cookie-signature用于cookie-parser签署已签名cookie 的源代码,这让我更好地了解了签名的cookie是什么.
val当然是cookie的值,并且secret是您作为选项添加的字符串 cookie-parser
https://github.com/visionmedia/node-cookie-signature/blob/master/index.js#L16
| 归档时间: |
|
| 查看次数: |
43354 次 |
| 最近记录: |