其實(shí)驗(yàn)證碼的作用非常簡(jiǎn)單,就是為了防止別人用程序惡意的大批量提交、注冊(cè)信息,還有比如在論壇惡意灌水發(fā)廣告等等行為。所以基本上可以說(shuō)驗(yàn)證碼限制的都是不好的行為。有的驗(yàn)證碼雖然難以識(shí)別,但是我們?nèi)搜圩屑?xì)看看還是可以分辨的,如果驗(yàn)證碼做的比較工整,那么程序也就非常容易識(shí)別出來(lái)了,如此一來(lái)驗(yàn)證碼也就形同虛設(shè)。專業(yè)的解釋驗(yàn)證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試)的縮寫(xiě),是一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序。可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個(gè)黑客對(duì)某一個(gè)特定注冊(cè)用戶用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試。
那么為啥要驗(yàn)證?驗(yàn)證的是啥
在沒(méi)有驗(yàn)證碼的時(shí)代,想要在論壇上發(fā)帖,只需輕輕敲一下回車鍵。然而,這也給惡作劇者和黑客提供了同樣的便捷,他們通過(guò)編寫(xiě)大量、重復(fù)編寫(xiě)信息的程序,偽裝成人類用戶,肆無(wú)忌憚地朝網(wǎng)絡(luò)上傾斜大量的、無(wú)意義的“僵尸”信息,垃圾郵件、垃圾廣告、垃圾評(píng)論到處亂飛。論壇被灌水,有用的信息很快會(huì)被淹沒(méi),很多網(wǎng)站的正常運(yùn)營(yíng)遭到破壞。除此之外,還有數(shù)之不盡的程序機(jī)器人使用不斷嘗試的方法惡意破解密碼、惡意刷票,從中獲取非法的利益。
網(wǎng)站制作中經(jīng)常會(huì)遇到驗(yàn)證碼功能,那么到底是前端驗(yàn)證還是服務(wù)器端來(lái)驗(yàn)證?蘇州網(wǎng)站制作在這里分享下個(gè)人觀點(diǎn),一是模擬用戶動(dòng)作,比如鼠標(biāo)點(diǎn)擊、字符輸入,好處是對(duì)灌水者來(lái)說(shuō)屏蔽了技術(shù)細(xì)節(jié),只關(guān)注需要做什么操作。對(duì)于這種流派,理論上滑動(dòng)解鎖也是可以模擬的。
二是直接post數(shù)據(jù),會(huì)事先抓包分析好需要的參數(shù),然后直接向服務(wù)器提交。對(duì)于這種流派,它只關(guān)注最終的提交數(shù)據(jù),之前有沒(méi)有滑動(dòng)解鎖是完全無(wú)影響的。邏輯上,純客戶端的驗(yàn)證再?gòu)?fù)雜也是無(wú)效的。最終提供驗(yàn)證的,其實(shí)是在服務(wù)端,客戶端只是顯示了一下驗(yàn)證碼而已。JS完全是由客戶端實(shí)現(xiàn)的,任何JS操作都可以被模擬,所以不能單純用JS來(lái)實(shí)現(xiàn)驗(yàn)證碼。
所以蘇州網(wǎng)站建設(shè)個(gè)人認(rèn)為,驗(yàn)證碼真正的目的是為了安全性的考慮,那么真實(shí)有效的驗(yàn)證也應(yīng)該在服務(wù)器端驗(yàn)證。應(yīng)該是后臺(tái)生成的驗(yàn)證碼到前端顯示,前端傳輸數(shù)據(jù)到后端進(jìn)行驗(yàn)證,前端再根據(jù)后端的驗(yàn)證結(jié)果顯示。當(dāng)然大牛們可能要噴了,前端也有實(shí)力達(dá)到很高的安全性,不過(guò)小編還是習(xí)慣后端驗(yàn)證。