免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
php session原理
標題: php session原理 [打印本頁]

作者: 夜貓子     時間: 2005-8-26 16:10     標題: php session原理

眾所周知,http協(xié)議是一個無狀態(tài)協(xié)議,簡單來說就是,web服務(wù)器是不知道現(xiàn)在連接上來的人到底是哪個人,為了滿足選擇性發(fā)送信息的需求,在http的基礎(chǔ)上做了很多擴展來達到這個目的,如數(shù)字簽名、cookie、session等。
web服務(wù)器或者web程序如何能夠知道現(xiàn)在連接上來的是誰?要解決這個問題,首先需要在服務(wù)器端和客戶端建立一一對應(yīng)關(guān)系,下邊我通過抓取http的內(nèi)容來說明這種對應(yīng)關(guān)系是如何建立的。
我使用的是一個叫做httplook的http包嗅探工具,然后在本地web服務(wù)器的根目錄下建立一個叫test.php的文件,地址是:http://localhost/test.php,一切就緒以后我通過瀏覽器反復(fù)打開這個頁面。

<?php
session_start();
if (isset($_SESSION[‘test_sess‘])){
    $_SESSION[‘test_sess‘]++;
}else{
    $_SESSION[‘test_sess‘] = 0;
}
echo $_SESSION[‘test_sess‘];
?>;
以下是前兩次向服務(wù)器發(fā)出的信息及服務(wù)器返回的信息

QUOTE:
原帖由 "第一次請求服務(wù)器" 發(fā)表:

GET /test.php HTTP/1.1
Accept: */*
Referer: http://localhost/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
Host: localhost
Connection: Keep-Alive


QUOTE:
原帖由 "服務(wù)器第一次返回" 發(fā)表:

HTTP/1.1 200 OK
Date: Fri, 26 Aug 2005 07:44:22 GMT
Server: Apache/2.0.54 (Win32) SVN/1.2.1 PHP/5.0.4 DAV/2
X-Powered-By: PHP/5.0.4
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 1
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
Content-Language: Off


QUOTE:
原帖由 "第二次請求服務(wù)器" 發(fā)表:

GET /test.php HTTP/1.1
Accept: */*
Referer: http://localhost/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
Host: localhost
Connection: Keep-Alive
Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3


QUOTE:
原帖由 "服務(wù)器第二次返回" 發(fā)表:

HTTP/1.1 200 OK
Date: Fri, 26 Aug 2005 07:44:23 GMT
Server: Apache/2.0.54 (Win32) SVN/1.2.1 PHP/5.0.4 DAV/2
X-Powered-By: PHP/5.0.4
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 1
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
Content-Language: Off
仔細對比這些輸出,第二次請求比第一次請求多出來的就是:
Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
這個header將會向服務(wù)器發(fā)送一個cookie信息,告訴服務(wù)器我有一個cookie,名字叫PHPSESSID,內(nèi)容是bmmc3mfc94ncdr15ujitjogma3。
這個cookie是怎么來的呢?看第一次服務(wù)器返回的信息里邊有:
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/
這是服務(wù)器向客戶端瀏覽器寫一個cookie,名字是PHPSESSID,值是bmmc3mfc94ncdr15ujitjogma3,這個值實際就是所謂的session_id。
繼續(xù)看第二次向服務(wù)器發(fā)出的請求,仍然向服務(wù)器發(fā)送了PHPSESSID這個cookie

可以得到以下結(jié)論:
1、只要使用了session,就會通過cookie的方式向客戶端瀏覽器發(fā)送session
2、每次向服務(wù)器發(fā)出請求的時候,本地瀏覽器會把cookie附帶在請求信息中

說到這里,服務(wù)器端和客戶端如何通過session做到一一對應(yīng)的答案就很清楚了,明白了這個道理,對于使用session有很大幫助,請細細體會。
作者: Yarco     時間: 2005-8-31 18:09     標題: php session原理

奇怪...好帖居然沒人頂...

請教斑竹.
假如我第二次發(fā)送請求不寫:
Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
是不是意味著服務(wù)器端會調(diào)用:
$_SESSION[‘test_sess‘] = 0;
這個呢?

ps,居然發(fā)現(xiàn)一個變量$_SERVER["HTTP_COOKIE"], 沒看到手冊里有寫.

ps,斑竹有沒在win32下好的協(xié)議分析工具?

and ps...
實際上我是在翻前幾天看到一位兄弟說是關(guān)于php5出錯不顯示錯誤的問題.
我也遇到了...error_reporting已經(jīng)設(shè)置了E_ALL. 我亂寫一通, 居然沒反應(yīng).
版本php5.0.4
是不是各位普遍有這種情況?
作者: 夜貓子     時間: 2005-8-31 18:53     標題: php session原理

>;假如我第二次發(fā)送請求不寫:
>;Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
isset($_SESSION[‘test_sess‘])就會返回false,結(jié)果就是
$_SESSION[‘test_sess‘] = 0;
你的想法是正確的

如果是分析一下http協(xié)議的話,telnet 80就可以了,稍微好點就用http look一類的東西,最好的工具是sniffer pro。
作者: hightman     時間: 2005-8-31 20:03     標題: php session原理

哎,都是基于cookie所以特別不安全.

只要這個session_id被知曉或者說cookie內(nèi)容被盜(這很容易辦到), 就很有可能被盜竊身份.

我在作程序時session數(shù)據(jù)都加入了IP驗證.  非根本性的解決方案.
作者: Yarco     時間: 2005-8-31 20:22     標題: php session原理

你這樣一說, 我倒是有問題出來了.
cookie被盜, 我相信是指這些情況吧:
1. 就是有n天效果的那種.
2. 被hack或者攔截了

假如不考慮上面因素
按理說那個session_id是個臨時值...也按理說臨時值對應(yīng)所儲存在服務(wù)器端里的文件也是臨時的, 用完之后應(yīng)該被刪掉的...
所以再要盜竊身份的話, 是不是說就得找到那個當(dāng)前在服務(wù)器上存在的那個對應(yīng)的session_id呢?
作者: hightman     時間: 2005-8-31 22:19     標題: php session原理

像論壇上的貼圖有些[IMG]標簽沒過濾好,cookie很容易被獲取.
作者: 夜貓子     時間: 2005-8-31 22:30     標題: php session原理

session_id的泄露最大的可能是嗅探,如果你處于廣播型的以太網(wǎng)內(nèi)就可以被嗅探

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
php中session使用
session是什么
session多服務(wù)器共享的方案梳理
Kali Linux Web滲透測試手冊(第二版) - 4.5- 手動識別Cookie中的漏洞
session和cookie在PHP中的區(qū)別
session跨域一級二級域名
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服