多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# csurf Node.js CSRF保护中间件。 初始时需要 session中间件 或 cookie-parser * 如果要将 cookie 选项设置为非false值,则必须在此模块之前使用cookie-parser。 * 否则,您必须在此模块之前使用 session中间件。例如 * express-session * cookie-session <br> ## API ### csurf([options]) 为CSRF token创建和验证创建中间件。这个中间件添加了一个**req.csrfToken()**函数来生成一个token,该token应该添加到隐藏表单字段,查询字符串等改变状态的请求中。 <br> ### Options #### cookie 确定用户的token密钥是应存储在cookie还是req.session中。 默认为false。 设置为true(或cookie的选项对象)时,模块会更改行为,不再使用req.session。 这意味着您不再需要使用会话中间件。 相反,您需要在此中间件之前使用cookie-parser中间件。 设置为对象时,将启用密钥的cookie存储,并且该对象包含此功能的选项(设置为true时,将使用选项的默认值)。 选项可能包含以下任何键: * key - 用于存储令牌密钥的cookie的名称(默认为“_csrf”)。 * path - cookie的路径(默认为'/')。 可以设置任何其他res.cookie选项。 <br> #### ignoreMethods 禁用CSRF token检查的方法的数组。 默认为['GET','HEAD','OPTIONS']。 <br> #### sessionKey 确定 session 对象位于 `req` 上的什么属性(“KEY”)。默认为'session'(即访问req.session)。 来自此库的CSRF秘密存储并读取为req [sessionKey] .csrfSecret。来自此库的 CSRF secret 在 `req[sessionKey].csrfSecret` 存储和读取。 如果“cookie”选项不为false,则此选项不执行任何操作。 <br> #### value 提供中间件将调用的函数,以从验证请求中读取token。此函数以value(req)调用,返回token字符串。 默认值是按顺序从以下位置读取token的函数: * req.body._csrf - 通常由body-parser模块生成 * req.query._csrf - 来自Express.js的内置函数,用于从URL查询字符串中读取 * req.headers['csrf-token'] - CSRF-Token HTTP请求头 * req.headers['xsrf-token'] - the XSRF-Token HTTP请求头 * req.headers['x-csrf-token'] - the X-CSRF-Token HTTP请求头 * req.headers['x-xsrf-token'] - the X-XSRF-Token HTTP请求头