我在具有csurf
和CORS
软件包(https://github.com/expressjs/csurf)的Express.js 4服务器中使用cookie-session
软件包(https://github.com/expressjs/cookie-session)。
今天,我注意到预检OPTIONS调用中有一个Set-Cookie
。
在OPTIONS预检调用之后,cookie仍然是旧的,就像OPTIONS调用响应头中的Set-Cookie一样。
这很奇怪,对吧?
我认为此程序包还在会话中为OPTIONS调用编写了csrfSecret
。
在自述文件中,他们说(https://github.com/expressjs/csurf#ignoremethods):
ignoreMethods
将禁用CSRF令牌检查的方法的数组。默认为['GET','HEAD','OPTIONS']。
我使用的是默认值,因此我认为它应该忽略OPTIONS调用,但是显然不是这种机密。 CSURF在每个OPTIONS调用会话中都写入秘密,并且cookie会话显然每次都写入新的cookie。。
如何避免这种情况?