国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

較為周全的Asp.net提交驗證方案

2024-07-10 13:12:53
字體:
來源:轉載
供稿:網友
以前在學習asp.net時備受困擾的就是提交驗證這塊,網上流行的關于圖片驗證的教程大都存在很多問題,比如:
驗證碼存儲在頁面代碼或cookies里,暴露給客戶端;
通過session存儲的驗證碼,雖然解決了安全問題,但一個用戶只使用一個變量存儲驗證碼,假如用戶同時打開一個以上的頁面,分別提交的話,就無法正常使用了;
驗證碼不會過期,這會留下隱患,使暴力破解變得可行(當然也可以通過刷新間隔、提交間隔、黑名單等手段加以控制);
此外還有伴隨著提交產生的另一個問題——重復提交。
為解決上述問題,我曾走過不少彎路,后來總結出了一個方案可以很好的解決這些問題,本文將結合ado.net entity framework技術來介紹此方案:
這方案的核心就是通過數據庫統一存儲所有請求頁面所對應的驗證碼及其相關信息(這也可以通過session或別的什么實現,但個人感覺數據庫更為優秀)。
首先來建立一個這樣的sql server數據表,表名設為“提交驗證”:



“id”字段存儲的是該驗證信息的唯一id,用于查詢,并且我們還會將此值傳給客戶端用于回發時再度獲取對應的信息,采用guid格式保證了唯一性和復雜性,客戶端幾乎沒有偽造的可能;
“會話id”字段即用于存儲sessionid,以確保驗證信息與用戶會話相對應,如果你不在意客戶端是否會被劫持的話,也可以忽略這個字段。
“驗證碼”字段即存儲驗證碼原文,用于檢驗用戶輸入,此外,驗證圖片生成函數也會通過id獲取此數據以生成對應的驗證圖片。
“是否已提交”字段標識此驗證信息是否已使用過,如果不需要給用戶明確的錯誤提示的話,可以在提交后直接刪除所使用的驗證信息,而不使用這個字段。
“過期時間”字段的數據將會在清理超時信息時使用到。
數據庫建好后,就可以建立ado.net entity framework數據模型(edm)了:



此模型從現有數據庫直接生成即可,不需要做什么額外改動。注冊會員,創建你的web開發資料庫,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定州市| 延津县| 扬州市| 望江县| 乐昌市| 墨脱县| 青浦区| 阜城县| 绩溪县| 会同县| 万州区| 探索| 和田市| 海晏县| 永康市| 三明市| 广元市| 扎赉特旗| 元朗区| 贵南县| 浙江省| 西充县| 衡水市| 喀什市| 乐清市| 仁化县| 密山市| 葵青区| 古交市| 平山县| 汝南县| 闸北区| 大庆市| 滦南县| 广东省| 东明县| 册亨县| 阳谷县| 晋城| 迁西县| 岳西县|