session的使用原則參考模板_第1頁
session的使用原則參考模板_第2頁
session的使用原則參考模板_第3頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、session的使用原則(摘抄) 在什么時候傳遞session?    Session 的作用相當大,它的最主要作用就是可以針對某一個用戶的特殊的連接,建立一個私人的變量,并且這個變量可以在不同的頁面之間進行傳遞。除非用戶在20分鐘(或由用服務器設定的時間)內(nèi)沒有點擊任何頁面,否則這個變量會一直保留下去。這是一個很有用的功能,同時也是一個很占用服務器資源的功能。    很有用體現(xiàn)在:1)它可以自動的進行頁面間的參數(shù)傳遞。不需要表單傳遞、不需要超鏈接傳遞,只需要在后臺傳遞。2)而且設了一次session之后,就可以在

2、每一個頁面使用,非常方便。    很麻煩體現(xiàn)在:1)如果網(wǎng)站很大,一不小心設了兩個同名的session,就會造成錯誤,尤其是象session(“id”)這類變量,很容易出錯。2)session會占用系統(tǒng)資源,而且在20分鐘內(nèi)沒有連接的情況下才會自動消失。所以一旦大量使用,將會對系統(tǒng)造成嚴重影響。如何使用session?    1)對于會員登陸如何使用session?    在會員登陸中,一定需要用到session來判斷這個會員的狀態(tài):未登陸還是已經(jīng)登陸?雖然我們可以在數(shù)據(jù)庫中

3、設置一個字段,用來存儲是否登陸的信息,然后在登陸的每一個界面中讀取數(shù)據(jù)庫,從而分別針對已登陸和未登陸兩種情況做出判斷,進行不同得顯示。但這種方法效率太低,要經(jīng)常調(diào)用數(shù)據(jù)庫,耗用大量資源,不建議采用。使用session就不同了。只要會員一經(jīng)登陸,就設立一個session變量,記錄這個用戶的id號,即:session(“id”)。在其他頁面中通過對session(“id”)是否為空進行判斷,從而決定用戶是否登陸。    但這種方法需要注意一個問題,那就是:session變量用得越少越好。用很多session當然會很方便,但同時占用系統(tǒng)資源。我建議,只設置se

4、ssion(“user_id”),如果有權限的要求,最好加上一個session(“user_auth”)。其他不用設置。有的人喜歡設置 session(“password”),這并不是一個很好的習慣。為什么?因為,一般的會員系統(tǒng),都會允許會員對密碼進行修改,如果會員改了密碼,那么session(“password”)中的密碼就會存在問題。而且對于密碼這些敏感性的數(shù)據(jù),最好放在數(shù)據(jù)庫中最安全。    2)對于購物車的商品如何使用session?    購物車的特點,就是需要可以增加、修改、刪除購物車中的商品。所以最好

5、的方法就是,利用數(shù)據(jù)庫進行操作。似乎在這里只需要數(shù)據(jù)庫就可以了,不需要session來幫忙了?說得好!我們只需要利用數(shù)據(jù)庫就可以了!不需要使用session了。但需要注意一個問題:一個用戶登陸進入之后,他可以連續(xù)進行兩次購買,生成兩次訂單。而每次訂單都可以購買數(shù)種商品。而在兩次購物的過程中,這個用戶的session(“id”)是一直存在的。如何區(qū)分兩次購物呢?    這需要我們在數(shù)據(jù)庫設計中加以考慮:要設計兩張表,一張表是 order_list,其中的id號代表訂單號,紀錄了訂單號和訂貨人id。另一張表是order_item,其中的id號代表訂單中的貨物

6、號,記錄了貨物號和相關訂單號。    3)對于權限分級登陸中如何使用session?    權限分級中涉及一個問題,如何在每個頁面中判斷出這個用戶是否擁有這項權限?如何針對不同的權限,進行不同的顯示?而且這一切都是很有效率的?舉個例子,如果在每個頁面中都采用調(diào)用數(shù)據(jù)庫的方法判斷權限,就會造成消耗系統(tǒng)資源的問題。我自己比較推薦的方法,是寫一個check_auth.asp的小程序(本身是一個子程序),在每一個需要驗證權限的頁面中插入這個子程序。子程序的寫法如下:sub check_auth(session_str,ar

7、g1)statement;end sub    這個子程序?qū)崿F(xiàn)的功能是什么呢?    1、讀入session_str的值。session_str是一個存儲權限字符串的session。舉一個例子:如果阿貓的權限是:留言版只讀(1),CEO在線讀寫(3),我的部門讀寫改(7),投訴信箱讀寫改刪(15)。那么session_str=session(auth_str)=”1,3,7,2 / 315”    2、將session_str的值根據(jù)arg1參數(shù)進行分解提取,獲得權限具體的值

8、。比如我需要知道在CEO在線中的權限。只需調(diào)用:check_auth(session(auth_str),”CEO”)即可。    程序具體的寫法參見具體的程序模塊。    4)管理員界面中如何使用session?    管理員界面中使用session的方式和會員登陸的情況一樣。同樣只需要將id和權限字符串設成session。    5)session和安全設置    當一個用戶建立了第一個ses

9、sion,他不僅僅將一個變量存儲到了不同的頁面中,更重要的是:他建立了一個“會話”。會話的作用非常大,他是一個連接用戶和服務器的通道。在這條通道中,不僅存在著一個session指定的變量,還有其他的一些屬性,比如:session.id,session.id是一個標記session唯一性的id號,它是一個很長的數(shù)字,基本上沒有重復的可能。但如果某個黑客可以偽造session.id,他就可以偽造成某一個登陸的用戶,從而進行非法活動?;蚴?,一個用戶登陸進入后,利用id號的改變,對平級的其他用戶進行越權訪問,為了防止這種情況,需要注意:登陸者的id號永遠不要作為傳遞的參數(shù),否則會造成安全問題。唯一可以使用的方法是使用session,共享變量,而不是傳遞變量。因為任何變量在頁面的傳遞中都會有可能被改動!    6)session和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論