gpt4 book ai didi

node.js - 如何设置 CSURF (Express Middleware) 以与 Postman 一起工作?

转载 作者:行者123 更新时间:2023-12-05 00:44:48 26 4
gpt4 key购买 nike

根据 CSURF 文档,您如何设置工作服务器以在 Postman 中测试 CSURF: http://expressjs.com/en/resources/middleware/csurf.html

最佳答案

感谢您的提问和回答,它帮助解决了设置 Postman 的部分难题。我发布了我自己的答案,以明确几点,并自动将 token 复制到 Postman 请求中

1。 Cookie 解析器优先

app.use(cookieParser())

2。发送_csrf cookie

app.use(csrf({ cookie: { httpOnly: true, }}))

这将返回 Cookie 1:_csrf。推荐使用 httpOnly,因为它使 cookie 远离 JavaScript 并且更安全

3。发送 XSRF-Token cookie

设置需要随每个请求返回的第二个 cookie

app.use((req, res, next) => {
res.cookie('XSRF-TOKEN', req.csrfToken())
next()
})

4。返回 XRSF-Token* header

这需要在每个请求上(所有使用 POST、DELETE 等的请求)并且在每次调用后都不同使用 header 有其他选择(可以使用正文属性或查询),但使用 header 似乎更干净,尤其是在使用 JSON 时

一个。在 Postman 上设置并发送 GET 请求(因为 get 请求默认不检查 csrf)

b.在 Postman 中设置 POST 请求,使用 GET 请求中的 cookie 值设置此 header

XSRF-Token   abc123...

*注意连字符 (-),而不是下划线 (_)

4。在 Postman 中自动设置标题

Postman 像浏览器一样自动保存和发送 cookie,但我们需要某种方式从上一个请求中获取 token 并将其复制到我们的下一个请求中

Postman 中的测试在每个请求之后运行一段 Javascript,并且可以很好地用于此目的

我在我的一个 GET 请求上设置了这个测试,所以我确信它不会在第一个请求上无效

// A Postman Test script
const xsrf_token = postman.getResponseCookie('XSRF-Token')
postman.setEnvironmentVariable('xsrf_token', xsrf_token.value)

然后,在您的 POST 请求的 header 中,为环境变量切换出复制粘贴的字符串

XSRF-Token   {{xsrf_token}}

现在您应该可以在 Postman 中发布您心中的内容了

关于node.js - 如何设置 CSURF (Express Middleware) 以与 Postman 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65828687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com