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

最新文章

  1. css3复杂选择器+内容生成+Css Hack
  2. [Android]Android端ORM框架——RapidORM(v1.0)
  3. git stash -u 添加新文件
  4. WCF初探-12:WCF客户端异常处理
  5. OSI模型
  6. 关于WebPlayer Sandbox的小节
  7. VS预生成事件命令行 和 生成后事件命令行
  8. lintcode : 二叉树的层次遍历
  9. C# WinForm中 让控件全屏显示的实现代码
  10. 那些 Cynthia 教我的事 之 PMSec (二)
  11. 发现新大陆:一个最简单的破解SSL加密网络数据包的方法
  12. Python 日志处理(三) 日志状态码分析、浏览器分析
  13. YII2连表分页
  14. java二分查找
  15. maven 父工程 消除重复 对子模块进行管理 主要继承依赖
  16. js数组,字符串,json互相转换函数有哪些
  17. Ubuntu下如何访问Windows磁盘?
  18. WIN7成功安装Qt4.8方法,无需VS支持
  19. day61
  20. call()、apply()、bind()

热门文章

  1. java面向对象(封装,继承,多态,抽象,接口的定义和实现)
  2. Java 将Html转为PDF
  3. Node.js的基础知识点
  4. “网络巨轮”BGP的高级装备(增强配置)
  5. python yaml文件数据按原有的数据顺序dump
  6. txt工具大全(TXT文件合并、txt批量替换、编码转换器)
  7. java实现邮箱发送信息--验证码的发送(163邮箱)
  8. 深入了解v-model流程
  9. JDBC的架构设计
  10. P4719 【模板】"动态 DP"&动态树分治