cookies是服务器发送并保存到客户端的一部分数据,用于存储用户信息,便于服务器识别用户,由于cookies可以在前端通过document.cookies
获取到,所以就产生了被恶意篡改的漏洞,下面我们就了解一下如何对cookies信息进行加密防护,保证信息的安全;
var crypt={}; const KEY='afsaf$^&#gsfa@#';//用于生成签名的加密值 crypt.cryptUserId = function(userID){ var crypto=require('crypto'); var sign = crypto.createHmac('sha256',KEY); sign.update(userID +'');//将用户id拼接上一个空串,转换成字符串 return sign.digest('hex');//转换成十六进制 } module.exports=crypt;//将模块导出
使用sessionid的方式,不直接将用户id存储在cookie,进而避免信息篡改
var session={}; var cache={}; session.set=function(userID,obj){//obj={user:user.id} var sessionId=Math.random(); if(!cache[sessionId]){ cache[sessionId]={}; } cache[sessionId].content=obj;//将用户id存储在cache中,用于后面通过sessionid获取用户信息 return sessionId; }; session.get=function(sessionId){ // cache中存在sessionId,则返回它的content,否则返回undefined; return cache[sessionId] && cache[sessionId].content; } module.exports=session;