• node.js cookie和session


    express:
    1.数据
    2.中间件

    --------------------------------------------------------------------------------------------------------------

    http-无状态的

    cookie、session

    cookie:在浏览器保存一些数据,每次请求都会带过来
    *不安全、有限(4K)

    session:保存数据,保存在服务端
    *安全、无限

    --------------------------------------------------------------------------------------------------------------

    session:基于cookie实现的
    *cookie中会有一个session的ID,服务器利用sessionid找到session文件、读取、写入

    隐患:session劫持

    --------------------------------------------------------------------------------------------------------------

    cookie
    1.读取——cookie-parser
    2.发送——

    session
    cookie-session

    --------------------------------------------------------------------------------------------------------------

    cookie:
    1.cookie空间非常小——省着用
    2.安全性非常差

    1.精打细算
    2.校验cookie是否被篡改过

    a.发送cookie
    res.secret='字符串';
    res.cookie(名字, 值, {path: '/', maxAge: 毫秒, signed: true});

    b.读取cookie
    cookie-parser

    server.use(cookieParser('秘钥'));

    server.use(function (){
    req.cookies 未签名版
    req.signedCookies 签名版
    });

    c.删除cookie
    res.clearCookie(名字);

    --------------------------------------------------------------------------------------------------------------

    cookie-parser
    cookie-encrypter

    --------------------------------------------------------------------------------------------------------------

    session:
    cookie-session

    1.写入
    2.读取

    session劫持

    --------------------------------------------------------------------------------------------------------------

    cookie-session

    server.use(cookieParser());
    server.use(cookieSession({
    keys: [.., .., .., ..]
    }));

    server.use('/', function (){
    req.session
    });

    delete req.session

    --------------------------------------------------------------------------------------------------------------

    1.cookie-存在浏览器,4K,不安全
    签名、加密

    2.session-存在服务器
    不能独立存在,基于cookie

    --------------------------------------------------------------------------------------------------------------

    server.use(cookieParser('签名字符串'));
    server.use(cookieSession({

    }));

    server.use(function (req, res){
    res.cookie(名字, 值, {signed: true});

    res.cookies['user']
    res.clearCookie('名字');

    res.session['xxx']
    delete res.session['xxx'];
    });

    --------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    MySQL(六)锁机制
    MySQL(七)性能优化
    Jenkins+SVN+Maven+shell 自动化部署实践
    vue中使用echarts图表自适应窗口的几种方案
    想加入或者创建一个技术交流群。偏向前端,各位大佬有推荐吗?
    Goland 2019下载和安装(带破解补丁和汉化包)
    Elementui 表单验证 点击保存定位到验证失败处
    Scheduled 参数配置
    SpringBoot @Scheduled定时任务
    centos 7 安装 SVN服务
  • 原文地址:https://www.cnblogs.com/patriot/p/7269504.html
Copyright © 2020-2023  润新知