
增强
Web
应用的安全
|
131
}
}));
使用
SHA-2
保护密码
SHA-256
是
SHA-2
(
Secure Hash Algorithm
)哈希函数族中的一个,使
用
32
位词生成
256
位摘要(哈希值)。很多流行的协议,例如
SSL
和
PGP
都使用
SHA-2
,但是最近受到大量批评,因为有人用它加密密码。
SHA-2
和适当替代品的详细信息参见第
2
章。
下面介绍一下传给这个中间件的默认选项:
•
secret 是必须的选项,用于指定签署会话
ID cookie
的密令。
session
模
块依赖
Node
模块 cookie-signature,而它又利用 crypto(流行的加密
模块)通过 SHA-256 签署提供的值,生成键式哈希消息身份验证码(
hash
message authentication code
,
HMAC
)。最后,在返回给
Express
之前,
签名后的值还要使用 Base64 计算哈希值。
•
下一个选项 resave 指定未修改会话时是否存储会话。这个选项经常留为
默认值 true,但是不再推荐这么做。我们应该根据会话存储设定这个选项:
使用 req.session.touch() 时,应该设为 false;否则,推荐设为 true。
注
4
•
saveUninitialized 指定是否保存新会话(未经修改)。默认值是 true,
但是验证身份时建议设为 false。
•
cookie 用于进一步配置会话
ID cookie
。secure 建议设为 true,让启用
HTTPS
的网站使用安全的
cookie ...