session和cookie作用原理,區(qū)別

session和cookie作用原理,區(qū)別

Cookie概念

在瀏覽某些 網(wǎng)站 時(shí),這些網(wǎng)站會(huì)把 一些數(shù)據(jù)存在 客戶端 , 用于使用網(wǎng)站 等跟蹤用戶,實(shí)現(xiàn)用戶自定義 功能.

是否設(shè)置過(guò)期時(shí)間:

如果不設(shè)置過(guò)期時(shí)間,則表示這個(gè)Cookie生命周期為 瀏覽器會(huì)話期間 , 只要關(guān)閉瀏覽器,cookie就消失了.

這個(gè)生命期為瀏覽會(huì)話期的cookie,就是會(huì)話Cookie;

存儲(chǔ):一般保存在內(nèi)存,不在硬盤;

如果設(shè)置了過(guò)期時(shí)間, 瀏覽器會(huì)把cookie保存在硬盤上,關(guān)閉再打開(kāi)瀏覽器, 這些cookie 依然有效直到超過(guò)的設(shè)置過(guò)期時(shí)間;

存儲(chǔ)在硬盤上的Cookie可以在不同的瀏覽器進(jìn)程間共享奋献,比如兩個(gè)IE窗口乃秀。

而對(duì)于保存 在內(nèi)存的Cookie胰柑,不同的瀏覽器有不同的處理方式招盲。

原理:

如果瀏覽器使用的是 cookie舔亭,那么所有的數(shù)據(jù)都保存在瀏覽器端允粤,

比如你登錄以后寿弱,服務(wù)器設(shè)置了 cookie用戶名(username),那么错沽,當(dāng)你再次請(qǐng)求服務(wù)器的時(shí)候,瀏覽器會(huì)將username一塊發(fā)送給服務(wù)器肺孤,這些變量有一定的特殊標(biāo)記罗晕。

服 務(wù)器會(huì)解釋為 cookie變量。

所以只要不關(guān)閉瀏覽器赠堵,那么 cookie變量便一直是有效的小渊,所以能夠保證長(zhǎng)時(shí)間不掉線。

如果你能夠截獲某個(gè)用戶的 cookie變量茫叭,然后偽造一個(gè)數(shù)據(jù)包發(fā)送過(guò)去酬屉,那么服務(wù)器還是認(rèn)為你是合法的。所以杂靶,使用 cookie被攻擊的可能性比較大梆惯。

如果設(shè)置了的有效時(shí)間,那么它會(huì)將 cookie保存在客戶端的硬盤上吗垮,下次再訪問(wèn)該網(wǎng)站的時(shí)候垛吗,瀏覽器先檢查有沒(méi)有 cookie,如果有的話烁登,就讀取該 cookie怯屉,然后發(fā)送給服務(wù)器。

如果你在機(jī)器上面保存了某個(gè)論壇 cookie饵沧,有效期是一年锨络,如果有人入侵你的機(jī)器,將你的 cookie拷走狼牺,然后放在他的瀏覽器的目錄下面羡儿,那么他登錄該網(wǎng)站的時(shí)候就是用你的的身份登錄的。

所以 cookie是可以偽造的是钥。

當(dāng)然掠归,偽造的時(shí)候需要主意,直接copy cookie文件到 cookie目錄悄泥,瀏覽器是不認(rèn)的虏冻,

他有一個(gè)index.dat文件,存儲(chǔ)了 cookie文件的建立時(shí)間弹囚,以及是否有修改厨相,所以你必須先要有該網(wǎng)站的 cookie文件,并且要從保證時(shí)間上騙過(guò)瀏覽器,

曾經(jīng)在學(xué)校的vbb論壇上面做過(guò)試驗(yàn)蛮穿,copy別人的 cookie登錄庶骄,冒用了別人的名義發(fā)帖子,完全沒(méi)有問(wèn)題践磅。

cookie 用法:

setcookie("user","zy",time()+3600);? 設(shè)置user為zy,一小時(shí)之后失效;

$_COOKIE['user'];? ? ? ? ? ? ? ? ? 取回user值(名字)

setcookie("user","",time()-3600);? 刪除cookie,第二個(gè)參數(shù)為空,第三個(gè)時(shí)間設(shè)置為小于系統(tǒng)的當(dāng)前時(shí)間即可.

或在瀏覽器設(shè)置

在使用Cookie時(shí),Cookie自動(dòng)生成一個(gè)文本文件存儲(chǔ)在IE瀏覽器的Cookie臨時(shí)文件夾中,應(yīng)用瀏覽器刪除Cookie文件的具體操作步驟為

>選擇IE瀏覽器中的工具/internet選項(xiàng)命令,打開(kāi)Internet選項(xiàng)對(duì)話框,

>在常規(guī)選項(xiàng)卡中單擊刪除Cookie按鈕,在彈出的對(duì)話框中單擊確定按鈕,即可成功刪除全部Cookie文件.

Session的概念

Session 是存放在服務(wù)器端的類似于HashTable結(jié)構(gòu)(每一種web開(kāi)發(fā)技術(shù)的實(shí)現(xiàn)可能不一樣瓢姻,下文直接稱之為HashTable)來(lái)存放用戶數(shù)據(jù);

作用:實(shí)現(xiàn)網(wǎng)頁(yè)之間數(shù)據(jù)傳遞,是一個(gè)存儲(chǔ)在服務(wù)器端的對(duì)象集合音诈。

原理:當(dāng)用戶請(qǐng)求一個(gè)Asp.net頁(yè)面時(shí),系統(tǒng)將自動(dòng)創(chuàng)建一個(gè)Session;退出應(yīng)用程序或關(guān)閉服務(wù)器時(shí)绎狭,該Session撤銷细溅。系統(tǒng)在創(chuàng)建Session時(shí)將為其分配一個(gè)長(zhǎng)長(zhǎng)的字符串標(biāo)識(shí),以實(shí)現(xiàn)對(duì)Session進(jìn)行管理與跟蹤儡嘶。

session機(jī)制是一種服務(wù)器端的機(jī)制喇聊,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)(也可能就是使用散列表)來(lái)保存信息。

保存:

存儲(chǔ)在Server段的內(nèi)存進(jìn)程中的蹦狂,而這個(gè)進(jìn)程相當(dāng)不穩(wěn)定誓篱,經(jīng)常會(huì)重啟,這樣重啟的話凯楔,就會(huì)造成Session失效窜骄,用戶就必須要重新登錄,用戶體驗(yàn)相當(dāng)差摆屯,比如用戶在填寫(xiě)資料邻遏,快要結(jié)束的時(shí)候Session失效,直接跳到登錄頁(yè)面;

是否已經(jīng)創(chuàng)建過(guò)session:

當(dāng)程序需要為某個(gè)客戶端的請(qǐng)求創(chuàng)建一個(gè)session時(shí)虐骑,服務(wù)器首先檢查這個(gè)客戶端的請(qǐng)求里是否已包含了一個(gè)session標(biāo)識(shí)(稱為session id)准验,

如果已包含則說(shuō)明以前已經(jīng)為此客戶端創(chuàng)建過(guò)session,服務(wù)器就按照session id把這個(gè)session檢索出來(lái)....使用(檢索不到廷没,會(huì)新建一個(gè))糊饱,

如果客戶端請(qǐng)求不包含session id,則為此客戶端創(chuàng)建一個(gè)session并且生成一個(gè)與此session相關(guān)聯(lián)的session id颠黎,

session id的值應(yīng)該是一個(gè)既不會(huì)重復(fù)另锋,又不容易被找到規(guī)律以仿造的字符串,這個(gè)session id將被在本次響應(yīng)中返回給客戶端保存盏缤。

(總結(jié): 創(chuàng)建一個(gè)session時(shí),服務(wù)器看這個(gè)客戶端 是否包含session標(biāo)識(shí), 是的話按照session id把session檢索出來(lái),否則就得 新建一個(gè).)

Session的客戶端實(shí)現(xiàn)形式(即Session ID的保存方法):

一般瀏覽器提供了兩種方式來(lái)保存砰蠢,還有一種是程序員使用html隱藏域的方式自定義實(shí)現(xiàn):

[1] 使用Cookie來(lái)保存,這是最常見(jiàn)的方法唉铜,本文“記住我的登錄狀態(tài)”功能的實(shí)現(xiàn)正式基于這種方式的台舱。

服務(wù)器通過(guò)設(shè)置Cookie的方式將Session ID發(fā)送到瀏覽器。

如果我們不設(shè)置這個(gè)過(guò)期時(shí)間,那么這個(gè)Cookie將不存放在硬盤上竞惋,當(dāng)瀏覽器關(guān)閉的時(shí)候柜去,Cookie就消失了,這個(gè)Session ID就丟失了拆宛。

如果我們?cè)O(shè)置這個(gè)時(shí)間為若干天之后嗓奢,那么這個(gè)Cookie會(huì)保存在客戶端硬盤中,即使瀏覽器關(guān)閉浑厚,這個(gè)值仍然存在股耽,下次訪問(wèn)相應(yīng)網(wǎng)站時(shí),同 樣會(huì)發(fā)送到服務(wù)器上钳幅。

[2] 使用URL附加信息的方式物蝙,也就是像我們經(jīng)常看到JSP網(wǎng)站會(huì)有aaa.jsp?JSESSIONID=*一樣的敢艰。這種方式和第一種方式里面不設(shè)置Cookie過(guò)期時(shí)間是一樣的诬乞。(URL重寫(xiě),就是把session id直接附加在URL路徑的后面钠导。)

[3] 第三種方式是在頁(yè)面表單里面增加隱藏域震嫉,這種方式實(shí)際上和第二種方式一樣,只不過(guò)前者通過(guò)GET方式發(fā)送數(shù)據(jù)牡属,后者使用POST方式發(fā)送數(shù)據(jù)票堵。但是明顯后者比較麻煩。

表單隱藏字段就是服務(wù)器會(huì)自動(dòng)修改表單湃望,添加一個(gè)隱藏字段换衬,以便在表單提交時(shí)能夠把session id傳遞回服務(wù)器。比如:

實(shí)際上這種技術(shù)可以簡(jiǎn)單的用對(duì)action應(yīng)用URL重寫(xiě)來(lái)代替证芭。

session 用法:

用戶信息保存到session前,先啟動(dòng);

session_start();???????????????????? 啟動(dòng)session

$_SESSION['user']="zy";????? 設(shè)置用戶名

unset($_SESSION['user']);??? 銷毀用戶名

session_destory();??????????????? 失去已經(jīng)存儲(chǔ)的session的數(shù)據(jù)

cookie 和session 的區(qū)別:

1瞳浦、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上.

簡(jiǎn)單的說(shuō)废士,當(dāng)你登錄一個(gè)網(wǎng)站的時(shí)候叫潦,如果web服務(wù)器端使用的是session,那么所有的數(shù)據(jù)都保存在服務(wù)器上面,

客戶端每次請(qǐng)求服務(wù)器的時(shí)候會(huì)發(fā)送 當(dāng)前會(huì)話的session_id官硝,服務(wù)器根據(jù)當(dāng)前session_id判斷相應(yīng)的用戶數(shù)據(jù)標(biāo)志矗蕊,以確定用戶是否登錄,或具有某種權(quán)限氢架。

由于數(shù)據(jù)是存儲(chǔ)在服務(wù)器 上面傻咖,所以你不能偽造,但是如果你能夠獲取某個(gè)登錄用戶的session_id岖研,用特殊的瀏覽器偽造該用戶的請(qǐng)求也是能夠成功的卿操。

session_id是服務(wù) 器和客戶端鏈接時(shí)候隨機(jī)分配的警检,一般來(lái)說(shuō)是不會(huì)有重復(fù),但如果有大量的并發(fā)請(qǐng)求害淤,也不是沒(méi)有重復(fù)的可能性扇雕,我曾經(jīng)就遇到過(guò)一次。

登錄某個(gè)網(wǎng)站窥摄,開(kāi)始顯示的 是自己的信息镶奉,等一段時(shí)間超時(shí)了,一刷新崭放,居然顯示了別人的信息哨苛。

Session是由應(yīng)用服務(wù)器維持的一個(gè)服務(wù)器端的存儲(chǔ)空間,用戶在連接服務(wù)器時(shí)币砂,會(huì)由服務(wù)器生成一個(gè)唯一的SessionID,用該SessionID 為標(biāo)識(shí)符來(lái)存取服務(wù)器端的Session存儲(chǔ)空間移国。而SessionID這一數(shù)據(jù)則是保存到客戶端,用Cookie保存的道伟,用戶提交頁(yè)面時(shí),會(huì)將這一 SessionID提交到服務(wù)器端使碾,來(lái)存取Session數(shù)據(jù)蜜徽。這一過(guò)程,是不用開(kāi)發(fā)人員干預(yù)的票摇。所以一旦客戶端禁用Cookie拘鞋,那么Session也會(huì)失效。

2矢门、cookie不是很安全盆色,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙考慮到安全應(yīng)當(dāng)使用session。

3祟剔、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上隔躲。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能考慮到減輕服務(wù)器性能方面物延,應(yīng)當(dāng)使用COOKIE宣旱。

4、單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K叛薯,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie浑吟。(Session對(duì)象沒(méi)有對(duì)存儲(chǔ)的數(shù)據(jù)量的限制,其中可以保存更為復(fù)雜的數(shù)據(jù)類型)

注意:

session很容易失效,用戶體驗(yàn)很差;

雖然cookie不安全,但是可以加密;

cookie也分為永久 和暫時(shí)存在的;

瀏覽器 有禁止cookie功能 ,但一般用戶都不會(huì)設(shè)置;

一定要設(shè)置失效時(shí)間,要不然瀏覽器關(guān)閉就消失了;

例如:

記住密碼功能就是使用永久cookie寫(xiě)在客戶端電腦耗溜,下次登錄時(shí)组力,自動(dòng)將cookie信息附加發(fā)送給服務(wù)端。

application是全局性信息抖拴,是所有用戶共享的信息燎字,如可以記錄有多少用戶現(xiàn)在登錄過(guò)本網(wǎng)站,并把該信息展示個(gè)所有用戶。

兩者最大的區(qū)別在于生存周期轩触,一個(gè)是IE啟動(dòng)到IE關(guān)閉.(瀏覽器頁(yè)面一關(guān) ,session就消失了)

一個(gè)是預(yù)先設(shè)置的生存周期寞酿,或永久的保存于本地的文件。(cookie)

來(lái)源https://www.cnblogs.com/yunian/articles/5736066.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脱柱,一起剝皮案震驚了整個(gè)濱河市伐弹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榨为,老刑警劉巖惨好,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異随闺,居然都是意外死亡日川,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門矩乐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)龄句,“玉大人,你說(shuō)我怎么就攤上這事散罕》中” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵欧漱,是天一觀的道長(zhǎng)职抡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)误甚,這世上最難降的妖魔是什么缚甩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮窑邦,結(jié)果婚禮上擅威,老公的妹妹穿的比我還像新娘。我一直安慰自己冈钦,他們只是感情好裕寨,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著派继,像睡著了一般宾袜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驾窟,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天庆猫,我揣著相機(jī)與錄音,去河邊找鬼绅络。 笑死月培,一個(gè)胖子當(dāng)著我的面吹牛嘁字,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杉畜,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼纪蜒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了此叠?” 一聲冷哼從身側(cè)響起纯续,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灭袁,沒(méi)想到半個(gè)月后猬错,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茸歧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年倦炒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片软瞎。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逢唤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涤浇,到底是詐尸還是另有隱情智玻,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布芙代,位于F島的核電站,受9級(jí)特大地震影響盖彭,放射性物質(zhì)發(fā)生泄漏纹烹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一召边、第九天 我趴在偏房一處隱蔽的房頂上張望铺呵。 院中可真熱鬧,春花似錦隧熙、人聲如沸片挂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)音念。三九已至,卻和暖如春躏敢,著一層夾襖步出監(jiān)牢的瞬間闷愤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工件余, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讥脐,地道東北人遭居。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旬渠,于是被迫代替她去往敵國(guó)和親俱萍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Cookie概念 在瀏覽某些 網(wǎng)站 時(shí),這些網(wǎng)站會(huì)把 一些數(shù)據(jù)存在 客戶端 , 用于使用網(wǎng)站 等跟蹤用戶,實(shí)現(xiàn)用戶...
    空口言_1d2e閱讀 688評(píng)論 0 0
  • 會(huì)話(Session)跟蹤是Web程序中常用的技術(shù)告丢,用來(lái)跟蹤用戶的整個(gè)會(huì)話枪蘑。常用的會(huì)話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,599評(píng)論 1 49
  • ■六月飛雪 路過(guò)蛟騰村, 復(fù)興之路迎面撲來(lái) 春風(fēng)習(xí)習(xí)芋齿,內(nèi)容震撼 福音綿綿腥寇,先生蘊(yùn)藏 春夏秋冬,陰睛圓缺 風(fēng)雨無(wú)阻觅捆,...
    向前的冰山來(lái)客15669閱讀 157評(píng)論 1 10
  • 01. 思考能力是我們經(jīng)常談到的問(wèn)題赦役,我們的思考是單純的還是平面的?或是整體的栅炒、全局的還是系統(tǒng)的掂摔?這決定了你是否...
    小小火紅閱讀 123評(píng)論 0 1
  • 序 你是否曾為自己的未“表白”而遺憾乙漓,你是否曾為自己的未“作為”而后悔。人生中释移,或多或少會(huì)有一些來(lái)不及叭披,有些事有些...
    靈珊100521閱讀 131評(píng)論 0 0