簡単なWEBチャットを制作しています。そこでセッションについてわからないことがあるので質問しました。
以下のようにクライアントにセッションを付与した場合、
js
1const express = require('express'); 2const app = express(); 3const session = require("express-session"); 4 5app.use(session({ 6 secret: 'JDcf48Dc566', //セッションの暗号化に使うキー 7 resave: false, 8 saveUninitialized: false, 9 cookie: { maxAge: 1000*60*30 } 10})); 11 12// ログイン 13app.post('/login' , function(req, res){ 14 req.session.userId = 1;// セッションを埋め込み 15 console.log(req.session.userId); // 1 16});
このときセッションクッキーは"s%3Ah6R5h_7vQIYn4C_LJ5iFWfAZdSAAbl1T.EnszGazCiZgxrDoM89UckKWX1t0M2irxJ6BTIL4ZKGE"など暗号化されているのですが、もともとは1を代入しただけです。このとき、上記の"s%3Ah6R...IL4ZKGE"からサーバー側の1という単純な値は推測されてしまうでしょうか?もっと複雑な値にするべきでしょうか?(現在の設計ではuserIdはmysqlでauto_incrementした連番となっております。)
なるべく具体的に書きましたが、つまるところセッションクッキー("s%3Ah6R...IL4ZKGE")からサーバー側のセッションの値(req.session.userId = 1)を推測できてしまうかということです。
不足情報があればご教示ください。拙い文章ですが、回答よろしくお願い致します。
バージョン
node: 8.11.3
express: 4.16.4
express-session: 1.16.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/11 15:41