8AV国产精品爽爽Va在线观看_国产精品视频免费播放_综合精品综合一区二区_蜜臀福利视频免费观看

品優(yōu)網(wǎng)絡(luò) 十六年(2003-2018)專(zhuān)注
網(wǎng)站制作網(wǎng)站**:SESSION被冒充,COOKIE防篡改
日期:2014-12-28 作者:admin 來(lái)源: 瀏覽次數(shù):0 網(wǎng)友評(píng)論 0

企業(yè)網(wǎng)站推廣1

網(wǎng)站制作網(wǎng)站**:SESSION被冒充,COOKIE防篡改

做網(wǎng)站難免要面對(duì)**性的問(wèn)題,諸如sql注入拉,cookie冒名拉,等等,sql注入算是老生常談,翻翻舊賬有不少**的帖子在說(shuō)明這個(gè)問(wèn)題,所以我們來(lái)說(shuō)說(shuō)Session冒名更替的風(fēng)險(xiǎn)以及應(yīng)對(duì)的辦法。
首先要說(shuō)Session冒名更替,就得說(shuō)說(shuō)Session的原理。Session是一個(gè)在服務(wù)器端保持會(huì)話的機(jī)制,其實(shí)在Http協(xié)議里并沒(méi)有規(guī)定 Session這個(gè)東西,所以他的實(shí)現(xiàn)方式就有點(diǎn)千奇百怪,不同的Web框架下Session的實(shí)現(xiàn)機(jī)制都是不一樣的。但是原理都是大同小異的,這里普遍應(yīng)用的機(jī)制是通過(guò)Cookie來(lái)存儲(chǔ)一個(gè)會(huì)話的票據(jù)(也就是SessionID),服務(wù)端在cookie里取得SessionID后就去存儲(chǔ) Session的后端(可以是進(jìn)程里,數(shù)據(jù)庫(kù),或者其他任何可以存儲(chǔ)數(shù)據(jù)的東西,包括文件)去獲取這個(gè)會(huì)話的數(shù)據(jù)。
我們用一個(gè)抓包工具來(lái)獲取一段數(shù)據(jù)看看,如下:
GET /w3/global/j/global.js HTTP/1.1
Accept: */*
Referer:
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; EmbeddedWB 14.52 from: EmbeddedWB 14.52)
Host: images.jiayuan.com
Connection: Keep-Alive
Cookie: SESSION_HASH=aa200d999de428f8e84ad56f4fc0afb9ac88fb78; stadate1=25727411; myloc=53%7C5301; myage=24; mysex=m; myuid=25727411; myincome=30; last_login_time=1277561249; new_msg=0; pop_1268278480=1277575662747; pop_time=1277561290653

標(biāo)紅字的地方就是SessionID了,當(dāng)然ASP.NET有一種Cookieless的機(jī)制,是把這個(gè)ID放在url里傳遞。
這里就有一個(gè)問(wèn)題,這個(gè)ID在非SSL的環(huán)境下提交是明文的,所以如果這個(gè)ID被竊取,然后就可以冒名更替別人的身份了(注:大多數(shù)框架的設(shè)計(jì)中 Session一旦被創(chuàng)建后,SessionID的值就固定了,不會(huì)變)。
這涉及到Web開(kāi)發(fā)中的一個(gè)說(shuō)法,就是客戶(hù)端的任何輸入都是不可信的,所以Cookie作為在客戶(hù)端保留的數(shù)據(jù),在沒(méi)有防篡改機(jī)制的保護(hù)下,其內(nèi)容也是不可信任的。一旦信任了這樣的數(shù)據(jù),就會(huì)存在一個(gè)**上的隱患。
那么如何來(lái)防范呢,這里我們需要實(shí)現(xiàn)cookie防篡改的功能。Cookie防篡改功能的原理很簡(jiǎn)單。假設(shè)我有一個(gè)值要寫(xiě)入Cookie
key="user_name" value="alexander"
如果需要防止這個(gè)值被篡改成其他的值是不可能的,因?yàn)閏ookie已經(jīng)寫(xiě)到了客戶(hù)端,別人可以隨意的改,服務(wù)器是沒(méi)辦法阻止的,但是我們可以用防篡改的機(jī)制來(lái)讓服務(wù)器知道cookie的值被篡改過(guò)。所以在向客戶(hù)端發(fā)送cookie的時(shí)候就不能原樣發(fā)回去了,我們?cè)贑ookie的值后面跟上一段防篡改的驗(yàn)證串,整個(gè)作為一個(gè)整體發(fā)送到客戶(hù)端。所以客戶(hù)端得到的cookie可能就是這個(gè)樣子:
user_name=alexander|ab95ef23cc6daecc475de
用|分割的后面部分就是驗(yàn)證串,也可以叫防篡改驗(yàn)證串。它是這樣生成的, DES(cookie的內(nèi)容+鹽值)
也可以用 MD5(cookie內(nèi)容+密鑰)也可以是SHA1(cookie內(nèi)容+密鑰),這里的密鑰只有站點(diǎn)本身知道,如果這個(gè)都泄漏了那就真完蛋了。這個(gè)值在服務(wù)器接收到Cookie以后,就可以用Cookie的內(nèi)容+密鑰重新計(jì)算一次驗(yàn)證串,和提交上來(lái)的做比對(duì),如果是一致的,我們就認(rèn)為cookie沒(méi)有被篡改,反之,cookie肯定被篡改過(guò),我們就不要相信這一次提交。如果所有的Cookie都經(jīng)過(guò)防篡改驗(yàn)證,那么也就不用擔(dān)心SessionID被冒名更替的事情發(fā)生了。
ASP.NET的sessionID我不知道是否有這個(gè)機(jī)制(汗顏,以前一直沒(méi)關(guān)注過(guò))不過(guò)Cookie是沒(méi)有的,所以大家可以自己動(dòng)手來(lái)增加這個(gè)功能,這樣對(duì)于提高站點(diǎn)的**性是有非常大的幫助的。

網(wǎng)站制作網(wǎng)站**:SESSION被冒充,COOKIE防篡改,與大家多多交流。

企業(yè)網(wǎng)站推廣2

查看更多寧波網(wǎng)站制作制作網(wǎng)站網(wǎng)站COOKIE

寧波網(wǎng)站建設(shè) (http://www.sdjianlida.com/) 版權(quán)與免責(zé)聲明
    1、凡本網(wǎng)注明“來(lái)源:寧波品優(yōu)網(wǎng)絡(luò)”字樣的所有作品,版權(quán)均屬于浙江省寧波海曙品優(yōu)網(wǎng)絡(luò)技術(shù)有限公司,如需轉(zhuǎn)載、摘編或利用其它方式使用上述作品,請(qǐng)與本網(wǎng)聯(lián)系。
    2、凡本網(wǎng)注明“來(lái)源:XXX(非寧波品優(yōu)網(wǎng)絡(luò))”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。寧波網(wǎng)站建設(shè)的轉(zhuǎn)載僅為信息的廣泛傳播,如有侵權(quán)請(qǐng)及時(shí)告之刪除。
返回:寧波網(wǎng)站制作