Postman CSRF 配置
作者:Bright Xu
很多时候,由于后端做了CSRF安全配置,测试接口时,发送一些请求可能会比较麻烦,也需要对CSRF做相应的配置。
注意: 目前使用的 Postman 版本是
9.2
、
9.12.2
和
9.21.5
,不同版本的 Postman 的 API 可能不太一样。
步骤
- 新建一个
Conllections
集合,这里以XSRF TOKEN Demo
为例。 Pre-request Script
中写入:
const xsrfHeaderName ='X-XSRF-TOKEN'const variableName ='csrf_token'const csrf_token = pm.collectionVariables.get(variableName)
pm.request.headers.remove(xsrfHeaderName)
pm.request.headers.add({key: xsrfHeaderName,value: csrf_token
})
3.
Tests
中写入:
const xsrfCookieName ='XSRF-TOKEN'const variableName ='csrf_token'const csrf_token = pm.cookies.get(xsrfCookieName)
pm.collectionVariables.set(variableName, csrf_token)
说明
Postman 在每个接口发送请求之前会执行
Pre-request Script
里的脚本,在发送请求之后会执行
Tests
里的脚本。
我们需要在请求发送之后,获取
Cookie
中
xsrf
的值,然后将这个值保存在集合变量域内。在下一次发送请求前,从集合变量域内取出
xsrf
的值,然后将这个值添加到请求头里。以此实现模拟前端的CSRF配置。
之所以选择集合变量域,是因为经常将同一个项目站点的接口放在同一个集合下,这样可以保证同一个项目复用同一个csrf配置。当然,选择环境变量域和全局变量域也是可以的,根据自己的偏好即可。
版权归原作者 Bright Xu 所有, 如有侵权,请联系我们删除。