常在網(wǎng)上晃悠的人,對上面這張圖都不會陌生。特別是在注冊新賬號、確認交易時,它們都會頻繁出現(xiàn),要求我們輸入正確的驗證碼,那這些看上去跟我們要做的事情完全無關(guān)的驗證碼到底有何作用呢?
0×1 誕生
首先,先介紹下驗證碼程序的提出者,路易斯·馮·安(Luis von Ahn)。2002年,路易斯和他的小伙伴在卡內(nèi)基梅隆第一次提出了CAPTCHA(驗證碼)這樣一個程序概念。該程序是指,向請求的發(fā)起方提出問題,能正確回答的即是人類,反之則為機器。這個程序基于這樣一個重要假設(shè):提出的問題要容易被人類解答,并且讓機器無法解答。
在當時的條件下,識別扭曲的圖形,對于機器來說還是一個很艱難的任務(wù),而對于人來說,則相對可以接受。yahoo在當時第一個應(yīng)用了圖形化驗證碼這個產(chǎn)品,很快解決了yahoo郵箱上的垃圾郵件問題,因此圖形類驗證碼開始了大發(fā)展時期。
0×2 發(fā)展與問題
圖形化驗證碼在被證明有效后,在互聯(lián)網(wǎng)上迅速得到了推廣。國內(nèi)外各大網(wǎng)站,在關(guān)鍵的業(yè)務(wù)點上都加入了這一類型的驗證碼。
首先,由于開發(fā)者水平的良莠不齊,導(dǎo)致驗證碼本身的實現(xiàn)存在問題,從而導(dǎo)致漏洞可以繞過,常見的有以下幾種類型:
[1] 驗證碼的生成邏輯、答案用戶可見
如將驗證碼答案輸出到頁面中、寫在cookie里。打比方就是說,在發(fā)卷的時候,把答案寫在了卷子背面。(老師再也不用擔心我的成績)
[2] 驗證碼的生命周期未控制好
如驗證碼可以重復(fù)使用、不設(shè)超時。驗證一次,永久使用。
[3] 業(yè)務(wù)邏輯與驗證碼結(jié)合點存在問題
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26