secret
会话express.session
的理想尺寸是多少?
答案 0 :(得分:3)
Cookie的标准尺寸:
通常,Cookie是由HTTP客户端(可能是浏览器)作为请求的一部分发送的令牌。由于HTTP无状态协议cookie只是告诉服务器谁是实际客户端的方法。如果您想浏览What is the maximum size of a cookie, and how many can be stored in a browser for each web site?
,请使用浏览器,浏览器对存储cookie有一定的限制由于cookie是每个请求的一部分,因此在cookie中存储更大的令牌/值/字符串将占用大量带宽。所以绝对不建议存储大数据。
Sencha的连接:
Express框架在内部依赖于连接框架来管理会话,cookie和。您可以从此https://github.com/visionmedia/express/blob/master/package.json中识别出来。您可以在JSON中查看依赖关键字。
连接会话/ Cookie管理的角色:
在cookie生成中,Secret“String”在避免cookie篡改方面起着关键作用。在内部,程序将生成编码字符串并将其作为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-signature”模块中实现的call sign()函数。您可以通过此页面https://npmjs.org/package/cookie-signature中的示例轻松了解sign()函数的工作方式,您可以从中深入了解 https://github.com/visionmedia/node-cookie-signature/blob/master/index.js
<强>结论:强>
最后,“秘密”字符串表达将作为签名的cookie的一部分。所以你可以使用任何长度的“秘密”字符串,除非它(sessionid和签名)超出标准浏览器支持的大小。
答案 1 :(得分:0)
上面的答案是错误的
秘诀有多大无关紧要-它对cookie的大小没有影响
您可以在此处https://npm.runkit.com/cookie-signature
进行检查var cookie = require("cookie-signature")
cookie.sign('hello', 'tobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscooltobiiscool')
结果长度相同
对于sha256,答案是256
快速会话正在使用https://www.npmjs.com/package/cookie-signature
符号功能在这里
一些recommend 32 bytes,others recommend 64
请放心使用256位