先說session 對SESSION的爭論好象一直沒有停止過
不過幺麽能理解SESSION的人應該占
以上
但還是講講
別嫌老~
有一些人贊成用SESSION
有一些人不贊成
但這個問題到底要怎麼說
不妨聽聽我的看法
如果有錯誤請不要朝丟東西
金條和硬幣除外
有些人應該知道我是做江湖程序的
而江湖程序做看中的就是效率
但這裡不談設計
而從一些比較實際的角度看SESSION
首先要先說SESSION是干什麼的
SESSION是可以存儲針對與某一個用戶的IE以及通過其當前窗口打開的任何窗口具有針對性的用戶信息存儲機制
為什麼要這樣說
看下邊
先研究SESSION是如何啟動的
當打開IE以後浏覽網站後會發出一個指令請求SESSIONID以及對各個類型數據的下載許可
如圖片
聲音以及FLASH
數據實際傳輸內容
IE到服務器
GET / HTTP/
Accept: image/gif
image/x
xbitmap
image/jpeg
image/pjpeg
application/x
shockwave
flash
*/*
Accept
Language
: zh
cn
Accept
Encoding: gzip
deflate
User
Agent: Mozilla/
(compatible; MSIE
; Windows NT
)
Host:
Connection: Keep
Alive
服務器會返回一個沒有被使用的SESSIONID讓IE使用
當時IE就對返回SESSIONID做存儲並同時返回相關頁面的下載數據
如下:服務器到IE
HTTP/
OK
Server: Microsoft
IIS/
Date: Sun
Nov
:
:
GMT
Content
Length:
Content
Type: text/html
Set
Cookie: ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC; path=/
Cache
control: private
然後就是頁面HTML代碼
此時這個IE程序(不是客戶機)的SESSIONID就為IBOMFONAOJFEEBHBPIENJFFC
而當IE在訪問任何這個站點的ASP程序的時候
就會把IBOMFONAOJFEEBHBPIENJFFC發送給服務器
服務器就會知道IBOMFONAOJFEEBHBPIENJFFC是表示你
而在服務器上設置SESSION(
name
)=
name
完全可以看成是
SESSION(
IBOMFONAOJFEEBHBPIENJFFC
)(
name
)=
name
或者
SESSION(SESSIONID)(
name
)=
name
這樣
SESSION就區分開用戶了
而當服務器反饋這個ID的時候會看這個ID有沒有被使用
如果有在換一個
反正不會讓你重復
如果想模擬某人的SESSION的ID來進行欺騙是可以的
不過要獲取到對方IE傳輸信號
並且在保證當時這個SESSIONID沒有被取消的情況下才可能實施
不過要是我有那時間直接通過POST信號找他NAME和PASS了
我可不費這個勁
想必一些人明白了了SESSIONID到底是如何工作的
那麼就在看看COOKIE
有人說SESSIONID就是COOKIE
按照技術上來講他們不屬於同類
但是屬於一種工作模式
用戶和服務器傳輸私有數據
當我設置COOKIE的時候
服務器會反饋給IE一個指令
IE通過這個網絡指令生成COOKIE並存放
在特定的時候會取得這個這個信息如在訪問這個站點並且COOKID有效的時候
那麼為什麼要用COOKIE而不用SESSION呢
看下區別
有效時間以及存儲方式 傳輸內容
COOKIE 可設置並在本地保留 明碼信息
SESSION 在IE不關閉並服務器不超時 只有SESSIONID
當如果想讓用戶下次登入網站不需要輸入用戶名或者密碼的時候就只能用COOKIE
因為他可以保留相當長的時間(在COOKIE記錄被刪除或者失效日期之前)而SESSION就不可以
他不會保留太長時間
而且IE在關閉後就自動清除了SESSIONID記錄
在下次登入的時候會請求新的SESSIONID
而服務器想通過用戶個人變量校驗用戶的狀態的時候
就不能用COOKIE如果用設置用戶權限是USER
而IE訪問的時候就把USER的明碼傳輸到服務器
那麼如果我通過一定手段
比如直接修改COOKIE記錄
把USER修改成ADMIN呢~~
就麻煩了
但存儲用戶名和密碼或者網站的配色方案這樣的信息
用COOKIE是最好的
好
有點累了
在說說這個東西
Request
ServerVariables(
HTTP_REFERER
)
我想有一些人通過這個Request
ServerVariables(
HTTP_REFERER
)
來進行一些關鍵性限制
特別是對付遠程提交以及非法侵入
那麼我就要提醒下服務器取得的HTTP_REFERER信息完全是IE傳輸給服務器的
可以模擬
而且難度不大
用不到半個小時就可以用VB做出一個針對HTTP_REFERER入侵程序
From:http://tw.wingwit.com/Article/program/net/201311/12192.html