Cookie をセキュアに設定すると、ノードの csrf が機能しないことに困惑しています。
//Load Cooike Parser
app.use(cookieParser(secret));
//Load Session Store
app.use(require('express-session')({
secret:secret,
cookie:{
maxAge: 1000 * 60 * 60 * 24, // 1 day,
secure: true,
httpOnly: true
},
store: sessionStore
}));
//Load POST data parser
//Form sent should be in JSON format
app.use(bodyParser.json());
//Initiate CSRF on middleware
//set the CSRF cookie Header
app.use(csrf());
app.use(function(req,res,next){
res.cookie('XSRF-TOKEN',req.csrfToken());
next();
});
このセットアップでは、セッション データの保存に MongoDB を使用しています。ドキュメントを読んでexpress-session
、私はこれに出くわしました...
secure: true が推奨されるオプションであることに注意してください。ただし、https 対応の Web サイトが必要です。つまり、安全な Cookie には HTTPS が必要です。セキュアが設定されている場合、HTTP 経由でサイトにアクセスすると、Cookie は設定されません。プロキシの背後に node.js があり、secure: true を使用している場合は、express で "trust proxy" を設定する必要があります。
ソース: npm エクスプレス セッション
現在、サイトをローカルで実行しているため、HTTPS ではありません。secure:true
csrfテストに合格しないこととどのように関係があるのか 知りたいですか?