Expressjs – 理想的会话秘密大小

express.session会议secret的理想尺寸是多less?

Cookie的标准尺寸:

一般而言,Cookie是HTTP客户端(可能是浏览器)发送的令牌,作为请求的一部分。 由于HTTP无状态协议cookie只能告诉服务器是谁的实际客户端。 让浏览器,浏览器对存储cookie有一定的限制,如果你想要通过一个cookie的最大尺寸是多less,每个网站可以存储多less个浏览器?

由于cookie是每个请求的一部分,因此在cookie中存储更大的令牌/值/string将占用大量带宽。 所以绝对不build议存储大量的数据。

Sencha的连接:

Express框架在内部依赖于连接框架来pipe理会话,cookie和。 你可以从这个https://github.com/visionmedia/express/blob/master/package.json中识别出来。 您可以通过JSON中的依赖项键。

连接在会话/ Cookiepipe理上的angular色:

在Cookie生成中,Secret“String”在避免Cookie篡改方面起到关键作用。 在内部,该程序将生成编码的string,并将其附加为cookie的一部分。 明确地说,你会在浏览器中看到名为“connect.sid”(这是默认的,但是你可以覆盖名字)的cookie。 而且您可以使用任何开发人员插件在浏览器中自行阅读。

针对“connect.sid”的值存储包含两部分。 第一个是“会话ID”,第二个是“签名”。 看起来如下,

 <session id encoded> . <signature> 

生成这个cookie格式的代码部分如下,

 function session(options){ ... ... return function session(req, res, next) { ... ... // set-cookie res.on('header', function(){ ... ... /*******************************************************/ /*********** Cookie Generating Code ********************/ var val = 's:' + signature.sign(req.sessionID, secret); val = cookie.serialize(key, val); debug('set-cookie %s', val); res.setHeader('Set-Cookie', val); /*********** Cookie Generating Code *******************/ }); ... ... 

签名生成:

连接在“cookie签名”模块中实现的呼号()函数。 你可以很容易的得到sign()函数是如何工作的,例如https://npmjs.org/package/cookie-signature和https://github.com/visionmedia/node-cookie -signature /斑点/主/ index.js

结论:

最后“秘密”stringexpression式将作为签名的一部分。 所以你可以使用任何长度的“秘密”string,除非它(sessionid和签名)超过了标准浏览器支持的大小。