Jim*_*ode 3 node.js express postman
如何根据 CSURF 文档设置工作服务器来在 Postman 中测试 CSURF: http://expressjs.com/en/resources/middleware/csurf.html
感谢您的提问和回答,它帮助解决了设置 Postman 的部分难题。我发布了我自己的答案,以便在几点上更加清晰,并且可以自动将令牌复制到邮递员请求中
\napp.use(cookieParser())\nRun Code Online (Sandbox Code Playgroud)\napp.use(csrf({ cookie: { httpOnly: true, }}))\nRun Code Online (Sandbox Code Playgroud)\n这将返回 Cookie 1:_csrf。\nhttpOnly建议使用,因为它使 Cookie 远离 JavaScript 的访问范围并且更安全
设置每个请求都需要返回的第二个 cookie
\napp.use((req, res, next) => {\n res.cookie(\'XSRF-TOKEN\', req.csrfToken())\n next()\n})\nRun Code Online (Sandbox Code Playgroud)\n这需要在每个请求上(所有使用 POST、DELETE 等的请求),并且在每次调用后都不同\n有使用标头的替代方案(可以使用主体属性或查询来代替),但使用标头似乎更干净,尤其是当使用 JSON 时
\nA。在 Postman 上设置并发送 GET 请求(因为 get 请求默认情况下不检查 csrf)
\nb. 在 Postman 中设置 POST 请求,使用 GET 请求中的 cookie 值设置此标头
\nXSRF-Token abc123...\nRun Code Online (Sandbox Code Playgroud)\n*注意连字符 (-),而不是下划线 (_)
\nPostman 会像浏览器一样自动保存并发送 cookie,但是我们需要某种方式从上一个请求中获取 token 并将其复制到我们的下一个请求中
\nPostman 中的测试在每次请求后运行一段 Javascript,并且可以很好地实现此目的
\n我在一个 GET 请求上设置了这个测试,所以我确信它在第一个请求上不会无效
\nXSRF-Token abc123...\nRun Code Online (Sandbox Code Playgroud)\n然后,在 POST 请求的标头中,切换环境变量的复制粘贴字符串
\nXSRF-Token {{xsrf_token}}\nRun Code Online (Sandbox Code Playgroud)\n现在您应该可以在 Postman 中随心所欲地发布内容了
\n| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |