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