跨站請求偽造(CSRF或XSRF)是一種惡意利用的網(wǎng)站,未經(jīng)授權(quán)的命令是傳播從一個web應(yīng)用程序的用戶信任馁害。
減輕這種攻擊可以使用csurf
包。這里有篇文章淺談cnode社區(qū)如何防止csrf攻擊
安裝 csurf
npm i --save csurf
csurf
要配合cookie-parser
使用
在入口文件新增
// main.ts
import * as csurf from 'csurf';
import * as cookieParser from 'cookie-parser'
...
app.use(cookieParser())
app.use(csurf({ cookie: true }));
app.use((err, req, res, next) => {
if (err.code !== 'EBADCSRFTOKEN') return next(err)
// handle CSRF token errors here
res.status(403)
res.json({
code : 403,
msg:'invalid csrf token'
})
})
然后可以用req.csrfToken()
獲取token
后 在前端的請求頭上帶上'CSRF-Token': token
進(jìn)行驗證
對于cnode社區(qū) csrf的一些思考
[淺談cnode社區(qū)如何防止csrf攻擊] (https://cnodejs.org/topic/5533dd6e9138f09b629674fd) 在練習(xí)nestjs的時候看到這個文章,對token放在參數(shù)上提交有疑問忍啸,因為別人可以通過獲取token后在form表單提交接口计雌,這樣也可以通過驗證。