cookie、session和md5加密
2024-09-06 18:37:11
cookie
Http无状态协议,只能在同一个网站(包括多个页面)下获取,存储在客户端本地的一段信息,帮助我们存储信息获取信息。但是同样有风险:我们自己在浏览器上可以操作或者设置Cookie。
const express = require('express')
const cookieParser = require('cookie-parser')
const app = express()
app.use(cookieParser())
app.get('/', (req,res)=>{
res.send('欢迎' + req.cookies.username); // 如果有username cookie则显示username,否则显示undefined
})
app.get('/login', (req,res)=>{
let username = req.query.username;
res.cookie('username',username,{maxAge:99999, httpOnly:true}); // maxAge:cookie的有效期;httpOnly设置为true,可以防止XSS攻击,只能被web serve访问,不能通过document.cookie获取
res.send('登录成功');
})
app.listen(80);
session
session是基于cookie实现,关闭浏览器就会消失。session会通过cookie保存一个sessionID在客户端,如果浏览器对cookie禁用了,那么session自然也就没办法应用了。
const express = require('express')
const session = require('express-session')
const app = express()
app.use(session({
secret: '加密名字',
resave: false, // 是否每次请求都重新设置session
saveUninitialized: true // 无论有没有session,每次都请求设置一个session
}))
app.get('/',(req,res)=>{
if(req.session.username){
res.send('欢迎'+req.session.username)
}else{
res.send('<a href="/login?username=张三">请登录</a>')
}
})
app.get('/login',(req,res)=>{
req.session.username = req.query.username
res.send('succ')
})
app.listen(80)
MD5加密
const crypto = require('crypto');
function md5(pwd){
let md5 = crypto.createHash('md5');
let password = md5.update(pwd).digest('base64');
return password;
}
console.log(md5('12345678'));
// 即使不同用户密码一样
console.log(md5('12345678')+parseInt(Math.random()*10000));
来源:https://segmentfault.com/a/1190000016344275
最新文章
- css3复杂选择器+内容生成+Css Hack
- [Android]Android端ORM框架——RapidORM(v1.0)
- git stash -u 添加新文件
- WCF初探-12:WCF客户端异常处理
- OSI模型
- 关于WebPlayer Sandbox的小节
- VS预生成事件命令行 和 生成后事件命令行
- lintcode : 二叉树的层次遍历
- C# WinForm中 让控件全屏显示的实现代码
- 那些 Cynthia 教我的事 之 PMSec (二)
- 发现新大陆:一个最简单的破解SSL加密网络数据包的方法
- Python 日志处理(三) 日志状态码分析、浏览器分析
- YII2连表分页
- java二分查找
- maven 父工程 消除重复 对子模块进行管理 主要继承依赖
- js数组,字符串,json互相转换函数有哪些
- Ubuntu下如何访问Windows磁盘?
- WIN7成功安装Qt4.8方法,无需VS支持
- day61
- call()、apply()、bind()