91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Cookies 欺騙漏洞的防范方法(vbs+js 實現(xiàn))

admin
2010年3月30日 15:24 本文熱度 8990
[b]一、攻擊原理 [br][/b]cookies 欺騙主要利用當前網(wǎng)絡(luò)上一些用戶管理系統(tǒng)將用戶登錄信息儲存在 cookies 中這一不安全的做法進行攻擊,其攻擊方法相對于 sql 注入漏洞等漏洞來說相對要“困難”一些,但還是很“傻瓜”。 [br]我們知道,一般的基于 cookies 的用戶系統(tǒng)至少會在 cookies 中儲存兩個變量:username 和 userlevel,其中 username 為用戶名,而 userlevel 為用戶的等級。當我們的瀏覽器訪問 asp 頁面時,它會傳出類似 [br]get /.../file.asp http 1.0 [br]... [br]cookies: username=user&userlevel=1 [br]... [br]的數(shù)據(jù)包,那么,我們只要知道了管理員的 username 和 userlevel 值(假設(shè)分別為 admin 和 5),便可以通過傳輸 [br]get /.../file.asp http 1.0 [br]... [br]cookies: username=admin&userlevel=5 [br]... [br]來獲取管理員權(quán)限。很簡單是不是?然而,在這個漏洞被發(fā)現(xiàn)之前,幾乎所有的用戶管理系統(tǒng)都依賴于 cookies。 [br][b]二、安全地儲存用戶信息[/b] [br]既然 cookies 是不安全的,而我們又必須把用戶登錄信息存儲下來,那么應(yīng)該存儲在什么地方呢? [br]我們注意到,在 asp 中,除了 cookies 外,還有 session 可以儲存信息。session 是儲存在服務(wù)器上的,不是客戶端隨隨便便就能夠更改的,所以具有極高的安全性。這樣,大家就可以把所有 cookies 的代碼均換作 session 了。 [br][b]三、長時間儲存用戶信息[/b] [br]采用 session 來保存用戶登錄信息,雖然擺脫了 cookies 欺騙的問題,但是 session 不能長期儲存(iis 默認 session 在用戶停止響應(yīng) 20 分鐘后失效),于是產(chǎn)生了這一節(jié)所述的 cookies + session 混合存儲法。 [br]這一方法有兩個變種,第一種是在 cookies 中儲存用戶名和密碼,當用戶訪問一個頁面時,先讀取 session,如果有內(nèi)容則以 session 為準,否則讀取 cookies,按照 cookies 中提供的用戶名和密碼進行“不透明”的登錄一次,用以判斷 cookies 中的內(nèi)容是否合法,若合法再進而存入 session 中。實現(xiàn)這一方法的代碼如下: [br]vbs: [br]
[u]復(fù)制代碼[/u] 代碼如下:
[br]<% [br]dim username, password [br]username = session("username") [br]if username = "" then [br]' session 中沒有用戶登錄信息 [br]username = request.cookies("username") [br]password = request.cookies("password") [br]' 注意上面的兩句得到的 username 和 password 要進行 sql 注入漏洞的防范(即過濾掉單引號“'”),這里略去 [br]if username = "" or password = "" then [br]' 用戶沒有登錄 [br]... [br]else [br]' 這里假設(shè)已經(jīng)創(chuàng)建了 conn 和 rs 對象 [br]rs.open "select top 1 * from [user] where username='" & username & "' and password='" & password & "'", conn, 1, 3 [br]if rs.eof then [br]' cookies 中的信息非法 [br]... [br]else [br]' cookies 中的信息合法,自動登錄 [br]session("username") = username [br]... [br]end if [br]end if [br]else [br]' 用戶信息已經(jīng)存在于 session 中,直接讀取 [br]... [br]end if [br]%> [br]
[p][br]js: [br] [/p]
[u]復(fù)制代碼[/u] 代碼如下:
[br]<% [br]var username, password; [br]username = session("username") + ""; [br]if (username == "" || username == "undefined") { [br]// session 中沒有用戶信息 [br]username = request.cookies("username") + ""; [br]password = request.cookies("password") + ""; [br]// 注意上面的兩句得到的 username 和 password 要進行 sql 注入漏洞的防范(即過濾掉單引號“'”),這里略去 [br]if (username == "" || username == "undefined" || password == "" || password == "undefined") { [br]// 用戶沒有登錄 [br]... [br]} [br]else { [br]// 這里假設(shè)已經(jīng)創(chuàng)建了 conn 和 rs 對象 [br]rs.open("select top 1 * from [user] where username='" + username + "' and password='" + password + "'", conn, 1, 3); [br]if (rs.eof) { [br]// cookies 中的信息非法 [br]... [br]} [br]else { [br]// cookies 中的信息合法,自動登錄 [br]session("username") = username + ""; [br]... [br]} [br]} [br]} [br]else { [br]// 用戶信息已經(jīng)存在于 session 中,直接讀取 [br]... [br]} [br]%> [br]
[p][br]但是這種方法對于用戶來說又不太安全,原因是瀏覽器每次訪問頁面時都會把 cookies 傳輸過去,而包含密碼的 cookies 一旦被他人獲取將導(dǎo)致用戶帳號被盜。對于這種情況,又出現(xiàn)了第二種方法,即在用戶信息[url=http://www.waweb.cn/dblist/db.htm]數(shù)據(jù)庫[/url]中增加一個字段“verifycode”,在用戶登錄時,隨機產(chǎn)生一個長整型校驗值存入 verifycode 字段,并且將 username 和這個 verifycode 值而不是 password 存入 cookies。而在驗證 cookies 中的用戶信息時,也只驗證 username 和 verifycode。這種方法的好處在于,即使用戶的 cookies 被[color=#ff0000]黑客[/color]獲取,他也只能利用這個“臨時”產(chǎn)生的 verifycode 登錄,而無法獲得用戶的密碼。只要此用戶再一次使用用戶名和密碼登錄,這個 verifycode 值便會改變,[color=#ff0000]黑客[/color]便無法通過原來的 verifycode 登入。 [br]這種方法的實現(xiàn)只需要在上述方法一的代碼上稍加改動。首先,在您的登錄程序中,在驗證通過存儲用戶信息的地方需要加上一段: [br]vbs: [br] [/p]
[u]復(fù)制代碼[/u] 代碼如下:
[br]<% [br]response.cookies("verifycode") = int(rnd * 2100000000) [br]%> [br]
[p][br]js: [br] [/p]
[u]復(fù)制代碼[/u] 代碼如下:
[br]<% [br]response.cookies("verifycode") = math.floor(math.random() * 2100000000); [br]%> [br]
[p][br]然后,在上面提供的驗證代碼中把對 cookies("password") 的驗證改為對 cookies("verifycode") 的驗證即可。 [br]四、結(jié)論 [br]通過我們的分析以及處理,cookies 欺騙漏洞已經(jīng)被完全解決,從此,我們的 asp 程序變得更加安全了。[/p]

該文章在 2010/3/30 15:24:30 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国自产拍在线视频天 | 国产精品第9页 | 国产高清在线自在 | 日韩亚洲第一页 | 欧美午夜一区二区 | 国产中文字幕第一页 | 日韩激情偷拍第3页 | 精品福利在线视频 | 午夜欧美 | 人片在线观看www | 欧美一级在线全免费 | 精品视频资源 | 91美剧网| 日本大骚b视频 | 国产太嫩了在 | 欧美亚洲日韩国产 | 国产做爰又粗又 | 午夜福利在线 | 日本国产在线 | 看片视频区一区二 | 国产啪精品视 | 日韩欧美中文综合 | 国产情侣在视频 | 最新免费电影大全 | 国产日韩欧美911 | 国产日韩欧美精品 | 91福利精品视频 | 中文字幕第一页在线 | 91制片厂丽莎 | 成人一区 | 日韩在线 | 国产精品视频分类 | 福利所视频导航 | 日韩欧美午夜大片 | 国产精品亚洲综合色 | 97高清国语自产拍 | 91香蕉视| 日本精品免费 | 国产在线精品专区 | 欧洲无线乱 | 国产人妖在线 |