亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

安全校驗(yàn)Session驗(yàn)證碼并避免繞開驗(yàn)證碼攻擊

 更新時(shí)間:2012年01月08日 18:58:00   作者:  
校驗(yàn)驗(yàn)證碼的Session是否為空或者校驗(yàn)用戶輸入的驗(yàn)證碼是否合法,構(gòu)造安全表單的關(guān)鍵就是永遠(yuǎn)不要相信用戶的輸入
已經(jīng)記不得是在哪個(gè)網(wǎng)站上看到的了,一般情況下對(duì)于驗(yàn)證碼的校驗(yàn),大家很容易寫成下面這樣:
復(fù)制代碼 代碼如下:

<%
If Request.Form("SecurityCode") = Session("SecurityCode") Then
' TODO : Database operations
Else
Response.Write "Security code incorrect!"
End If
%>

驗(yàn)證碼圖片產(chǎn)生Session("SecurityCode")并保存正確的驗(yàn)證碼值,然后獲得用戶提交的驗(yàn)證碼值,然后兩個(gè)一比對(duì)如果一樣則表示驗(yàn)證碼正確,否則驗(yàn)證碼錯(cuò)誤。表面上這樣的算法沒(méi)有什么問(wèn)題,但是對(duì)于一種特殊情況則會(huì)讓驗(yàn)證碼形同虛設(shè)。
首先我們知道,對(duì)于上面的算法有個(gè)核心的地方就是我們要訪問(wèn)產(chǎn)生驗(yàn)證碼圖片的那個(gè)文件才會(huì)有個(gè)保存驗(yàn)證碼值的Session,然后才能對(duì)用戶的輸入進(jìn)行正確的比對(duì),假如有心人構(gòu)造一個(gè)繞開驗(yàn)證碼圖片文件的Form然后進(jìn)行提交會(huì)得到什么呢?Session("SecurityCode")不存在為空,如果此時(shí)用戶驗(yàn)證碼什么都不輸入,這時(shí)驗(yàn)證碼校驗(yàn)就形同虛設(shè)了。好,這里利用漏洞攻擊的關(guān)鍵就是驗(yàn)證碼的Session,我們很容易就能夠讓服務(wù)器不產(chǎn)生這個(gè)Session從而使這樣的攻擊變成可能。
解決的方法也很容易,校驗(yàn)驗(yàn)證碼的Session是否為空或者校驗(yàn)用戶輸入的驗(yàn)證碼是否合法,構(gòu)造安全表單的關(guān)鍵就是永遠(yuǎn)不要相信用戶的輸入。下面采用校驗(yàn)驗(yàn)證碼Session和用戶輸入的雙保險(xiǎn)辦法解決這個(gè)安全問(wèn)題:
復(fù)制代碼 代碼如下:

' str為要校驗(yàn)的驗(yàn)證碼,len為驗(yàn)證碼長(zhǎng)度
Function IsSecurityCodeValid(str, len)
IsSecurityCodeValid = Not CBool( _
IsEmpty(str) Or CStr(str)="" Or Len(str)<len)
End Function
If IsSecurityCodeValid(Request.Form("SecurityCode"), 4) AND _
IsSecurityCodeValid(Session("SecurityCode"), 4) AND _
Request.Form("SecurityCode") = Session("SecurityCode") Then
' TODO : Database operations
Else
Response.Write "Security code incorrect!"
End If

相關(guān)文章

  • git 多賬戶配置完整實(shí)現(xiàn)過(guò)程詳解

    git 多賬戶配置完整實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要為大家介紹了git 多賬戶配置完整實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Git如何修改已提交的commit注釋

    Git如何修改已提交的commit注釋

    這篇文章主要介紹了Git如何修改已提交的commit注釋問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vscode配置leetcode插件并解決無(wú)法登錄問(wèn)題(圖文詳解)

    vscode配置leetcode插件并解決無(wú)法登錄問(wèn)題(圖文詳解)

    這篇文章主要介紹了vscode配置leetcode插件并解決無(wú)法登錄問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • vscode安裝rainbow-fart(鼓勵(lì)師)插件

    vscode安裝rainbow-fart(鼓勵(lì)師)插件

    這篇文章主要介紹了vscode安裝rainbow-fart(鼓勵(lì)師)插件的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Asp與JS的數(shù)組和字符串下標(biāo)介紹

    Asp與JS的數(shù)組和字符串下標(biāo)介紹

    數(shù)組都是從0開始。javascript是arrayname[i],而vbscript是arrayname(i),javascript的字符串還是從0開始,asp的字符串下標(biāo)從1開始
    2013-03-03
  • wireshark捕獲過(guò)濾器語(yǔ)法使用解析

    wireshark捕獲過(guò)濾器語(yǔ)法使用解析

    這篇文章主要為大家介紹了wireshark捕獲過(guò)濾器語(yǔ)法使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • OB系統(tǒng)變量Variables及ODC管理會(huì)話功能詳解

    OB系統(tǒng)變量Variables及ODC管理會(huì)話功能詳解

    這篇文章主要為大家介紹了OB系統(tǒng)變量Variables及ODC管理會(huì)話功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • git?stash?暫存命令操作

    git?stash?暫存命令操作

    這篇文章主要介紹了git stash暫存命令操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • git merge最簡(jiǎn)潔用法詳解

    git merge最簡(jiǎn)潔用法詳解

    git-merge 命令是用于從指定的 commit(s) 合并到當(dāng)前分支的操作,本文重點(diǎn)給大家介紹git merge最簡(jiǎn)潔用法,感興趣的朋友跟隨小編一起看看吧
    2020-12-12
  • scratch-www 在Win10下的環(huán)境搭建詳細(xì)教程

    scratch-www 在Win10下的環(huán)境搭建詳細(xì)教程

    scratch-www是scratch-gui的網(wǎng)頁(yè)版,功能包括gui的編輯,保存,播放,和gui的作品展示,這里主要介紹scratch-www在window系統(tǒng)下的安裝和運(yùn)行,感興趣的朋友跟隨小編一起看看吧
    2021-08-08

最新評(píng)論