Node個人學習(四)----后台中的cookie和session


cookie(需要cookie-parser): 在瀏覽器保存一些數據,每次請求都會帶過來

     特點:1、空間小

             2、安全性差

             3、cookie可以在垂直讀取,上級目錄讀取下級目錄。

     使用:1、使用時精打細算

             2、對cookie進行安全保護,至少能校驗cookie是否被篡改過

             讀取與解簽名 簽名和沒有簽名過的cookie需要通過不同的方法讀取。

//導入讀取模塊
const cookieParser=require('cookie-parser');

//執行中間件,在cookieParser中輸入簽名密鑰進行解簽名 server.use(cookieParser('sadsadwdewef'));

//使用req.cookies獲取cookie信息 server.use('/aaa/a.html',function(req,res){
res.send('這里面只有簽名過的cookie: ',req.signedCookies) res.send('這里面只有沒有簽名過的coolie:',req.cookies); })

              發送cookie:使用res.cookie直接設置cookie。

server.use('/',function(req,res){
	//對cookie的設置必須放在send()之前,否則會報錯!
	res.cookie('user1','xiao1',{path:'/aaa',maxAge:7*24*3600*1000}); 
	res.send('ok!');
	res.end();
});

              刪除cookie:

res.clearCookie(名字);

              加密:使用簽名來防止cookie被修改

                       缺點:1、cookie值依然能被看到。

                               2、讀取簽名過的cookie必須進行解簽。

                               3、增加cookie大小,浪費空間。

//自定義字符串來創建密鑰。
req.secret='xuaiooasu65hg66';
//使用signed來確認對信息進行簽名。 res.cookie('user1','xiao1',{signed:true});

  


 

session(需要cookie-session):保存數據,保存在服務端---------------------------*安全、無限(服務器空間)

              session是基於cookie實現的,當用戶訪問時服務器會給予用戶一個默認名為session的cookie,在后續的訪問中服務器會利用這個cookie找到session文件,進行讀取、寫入操作。

              隱患:session劫持

                       在cookie中,除了session外,還有一個名為session.sig的cookie存在,它是session的簽名,用來保護session不被篡改。

              屬性:session中可以自主設置的session屬性

server.use(cookieSession({
	//手動設置session名
	name:'sess',
	//手動設置session密鑰
	keys:['aaa','bbb','ccc'],
	//手動設置session過期時間,單位為毫秒
	maxAge:30*60*1000
}));

              讀取:

//導入需要模塊
const cookieSession=require('cookie-session');
//使用中間件在req中添加session屬性
server.use(cookieSession());

server.use('/',function(req,res){
        //輸出session數據
	console.log(req.session);
})

              加密:使用keys數組來加密session,數組中密鑰循環使用,加大破解難度

server.use(cookieSession({
	keys:['aaa','bbb','ccc']
}));

              刪除:delete req.session


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM