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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論