cookie
用于在客户端存储一些数据、下次访问服务器时会携带这些数据
- 容量小:每条4K,最多20条。(总容量32K,t头部只有32K)
- 不安全:用户可以随意查看,修改
- 不稳定:清理浏览器垃圾会消失
- 同源策略限制:无法跨域访问
使用cookie
const Koa = require("koa");
const opn = require("opn");
let server = new Koa();
server.listen(8000);
// server.keys = ['aaa', 'bbb', 'ccc', 'ddd'];
server.use(async ctx=>{
if(ctx.url=='/favicon') return;
ctx.cookies.set('user', 'enoch1') // 设置cookie
console.log(ctx.cookies.get('pass'));// 获取cookie
})
opn("http://localhost:8000/")
在客户端设置cookie
刷新一下服务端:
篡改问题:签名
秘钥
循环秘钥:一个秘钥不是太安全,需要一堆秘钥。
安全从来不是靠算法保障,是靠私钥保障。
代码:
const Koa = require("koa");
const opn = require("opn");
let server = new Koa();
server.listen(8000);
server.keys = ['aaa', 'bbb', 'ccc', 'ddd'];
server.use(async ctx=>{
ctx.cookies.set('user', 'enoch', {signed: true})
ctx.body = 'cookie'
})
opn("http://localhost:8000/")
修改数据: