2

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:truecsrfテストに合格しないこととどのように関係があるのか​​ 知りたいですか?

4

1 に答える 1