驗證碼用什麼保存到伺服器
『壹』 java web 驗證碼生成後一般在什麼地方保存這個驗證碼存到資料庫還是怎麼地
說起驗證碼,關系它的是安全性,再聯繫到你的時效性,這就非session(本身是客戶端的唯一使用伺服器資源的憑證,而且是有時效限制的,用戶長期未訪問伺服器,這個session是就會被主動注銷掉)不能當此大任了,可用性不在話下,至於你說的加密這是畫蛇添足了。
依樓上所言,未免誤人,伺服器端是必須保存這個驗證碼的,就像我給你了一個驗證碼,你可以使用,我自己也得備份一下和你比對,不然那不就變成了:你說你的驗證碼是對的,你已經驗證過了,我就信任你了,那就等於沒有密碼,客戶端的一切安全認證都是不足為信的!
『貳』 驗證碼是怎麼樣從伺服器傳到客戶端的
這個問題 有很多種情況, 大型文件的傳輸中`本來就容易出現問題。 建議你把MP4里的內容出來`然後格式化後``再拿到網吧試一試。。。 (挨```乾脆把硬碟拿下來直接去網吧拉一個咯..^_^)
『叄』 驗證碼驗證,後台把驗證碼存到session中,在jsp頁面中用el表達式獲取session中存放的
這個我知道,因為伺服器編譯jsp為html時是首先編譯的el表達式,然後再編譯的其他內容(如給session賦值),所以session還沒有值的時候就取值肯定是上一次的,這樣只能在Java的servlet中取值是合適的,頁面上不可能獲取到當前的session的,編譯完成的el表達式不可能再次變化,是死的,Java的servlet是用的時候才會執行取值命令,可以取到當前的session值
『肆』 網站驗證碼一般放在伺服器端什麼地方
通過展示頁面的代碼文件就可以找到(一般所有涉及驗證碼頁面都是採用的同一個驗證碼程序)。
『伍』 其實網站上的「驗證碼」有什麼用的啊
問:黑風冰(49520959) (2005-07-25 20:07:38)
論壇管理員
能說說那驗證碼為什麼不能顯示,你在論壇只說了解決方法。
我很想知道其中原由。
能說說嗎?
答:這是個時政問題啊,呵呵.目前,不少網站為了防止用戶利用機器人自動注冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片, 圖片里加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。這不,我們軍團論壇,也搞這個把戲了.搞得昨天晚上,我都不能發帖,運行了幾次補丁,然後重新啟動ie依然看不見驗證碼,懷疑我的機器安全措施太高,果然發現我禁止修改注冊表.改禁後,問題依然,沒有辦法,只好手工了.問題得解.
很多朋友對驗證碼有疑問,各大論壇的用戶也對驗證碼十分討厭,覺得麻煩,下面我們來解密這個東東.還是我的風格,通俗透徹,一分為幾,逐步解答.下面我們開始:
最初的驗證碼,只是幾個隨機生成的數字。但是道高一尺魔高一丈,很快就有能識別數字的軟體了,「收藏家」們利用這種軟體批量獲取帳號,或是探測密碼,因為軟體可以不知疲倦地不斷submit。於是,出現了圖片形式的驗證碼,還要加上無規則的背景,既然人眼都難以分辨,想來軟體分辨起來就有一定的難度。但是騰訊開始採用漢字圖片做驗證碼,是不是意味著破解驗證碼的技術又有了新進展,帶背景的數字或字母圖片形式的驗證碼,也可以被軟體分辨了?
值得說明的是:驗證碼不同於注冊碼,注冊碼是軟體作者根據提交的機器碼通過特殊演算法算出的,能讓軟體正常運行的密碼。
一.常見的驗證碼
1,四位數字,隨機的一數字字元串,最原始的驗證碼,驗證作用幾乎為零。
2,CSDN網站用戶登錄用的是GIF格式,目前常用的隨機數字圖片驗證碼。圖片上的字元比較中規中矩,驗證作用比上一個好。沒有基本圖形圖像學知識的人,不可破!可惜讀取它的程序,在CSDN使用它的第一天,好像就在論壇里發布了,真是可憐!
3,QQ網站用戶登錄用的是PNG格式,圖片用的隨機數字+隨機大寫英文字母,整個構圖有點張揚,每刷新一次,每個字元還會變位置呢!有時候出來的圖片,人眼都識別不了,厲害啊…
4,MS的hotmail申請時候的是BMP格式, 隨機數字+隨機大寫英文字母+隨機干擾像素+隨機位置。
5,Google的Gmail注冊時候的是JPG格式,隨機英文字母+隨機顏色+隨機位置+隨機長度。
6,其他各大論壇的是XBM格式,內容隨機。
二.驗證碼作用分析
驗證碼起源:因為攻擊者會使用有害程序注冊大量的 Web 服務帳戶(如 Passport)。攻擊者可以使用這些帳戶為其他的用戶製造麻煩,如發送垃圾郵件或通過同時反復登錄多個帳戶來延緩服務的速度。在大多數情況下,自動注冊程序不能識別此圖片中的字元。簡單的說呢,就是防止攻擊者編寫程序,自動注冊,重復登錄暴力破解密碼。驗證碼技術應運而生。
驗證碼實現流程:伺服器端隨機生成驗證碼字元串,保存在內存中,並寫入圖片,發送給瀏覽器端顯示,瀏覽器端輸入驗證碼圖片上字元,然後提交伺服器端,提交的字元和伺服器端保存的該字元比較是否一致。一致就繼續,否則返回提示。攻擊者編寫的robot程序,很難識別驗證碼字元,順利的完成自動注冊,登錄。。。。。。。。。而用戶可以識別填寫,所以這就實現了阻擋攻擊的作用。而圖片的字元識別,就是看圖片上的干擾強度了。就實際的效果來說,驗證碼只是增加攻擊者的難度,而不可能完全的防止。
1,論壇中的驗證碼的作用
目前,不少網站為了防止用戶利用機器人自動注冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。
因為你的WEB站有時會碰到客戶機惡意攻擊,其中一種很常見的攻擊手段就是身份欺騙它通過在客戶端腳本寫入一些代碼,然後利用其客戶機在網站論壇反復登陸,或者攻擊者創建一個HTML窗體,其窗體如果包含了你注冊窗體或發帖窗體等相同的欄位,然後利用"http-post"傳輸數據到伺服器,伺服器會執行相應的創建帳戶,提交垃圾數據等操作,如果伺服器本身不能有效驗證並拒絕此非法操作,它會很嚴重耗費其系統資源,降低網站性能甚至使程序崩潰.
而現在流行的判斷訪問WEB程序是合法用戶還是惡意操作的方式,就是採用 一種叫 "字元校驗"的技術.WEB網站像現在的動網論壇,他採用達到方法是為客戶提供一個包含隨即字元串的圖片,用戶必須讀取這些字元串,然後隨 登陸窗體或者發帖窗體等用戶創建的窗體一起提交.因為人的話,可以很容易讀出圖片中的數字,但如果是一段客戶端攻擊代碼,通過一般手段是很難識別驗證碼的.這樣可以確保當前訪問是來自一個人而非機器.
編程實現原理:使用某種動態編程語言,比如php,ASP,隨即生成一個隨機數,大多為4位數字和字母,或者是數字和字母的組合,生成以後,用GD庫的支持生成一張根據隨機數來確定的圖片,把隨機數寫入到session中,傳遞到要驗證的頁面,生成的圖片顯示給登陸著,並要求登陸者輸入該隨機數內容,提交到驗證頁面,驗證session的內容和提交的內容是否一致,這就是大致的思路!那麼怎麼編寫驗證碼程序呢,相信Google一下,就有很多現成的代碼。
2,申請QQ號時候驗證碼的作用
如今你要申請一個QQ號,需要輸入很復雜的驗證碼:驗證碼由若干個漢字組成,還加上了花哩唬哨的背景,使得有些漢字實在難以辨認。騰訊這么做,是為了防止有人利用軟體批量獲取QQ號碼----每次提交都要輸入隨機生成的驗證碼,這是軟體難以做到的。
三.圖片驗證碼技術之一:利用Xbm格式圖片
生成驗證代碼的技術有很多,這里只說與我們論壇有關系的這項技術。
x-xbitmap格式的圖片(以下簡稱為Xbm格式)特殊,就在於它並不跟gif,jpg等圖片格式一樣,是一個真正的純2進制圖片格式,而是ascii碼文件--換句話說,它是一個純文本文件,在Windows系統下,系統瀏覽器將它翻譯成圖片來進行顯示。
下面讓我們先來製作一個Xbm圖形格式圖片:
新建一個文本文件,將以下內容復制進去:
#define counter_width 48
#define counter_height 9
static unsigned charcounter_bits[]={ff,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,
fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}
然後,將此文本文件保存為名字為 test.Xbm的文件。
接下來,讓我們看看如果在ie中打開它,會出現什麼情形??(新開一個ie,然後將test.Xbm直接拖拽到它上面),哈,出現了如下圖一樣的情景,在瀏覽器中出來的,已經不是我們的文本,而是一個黑白的圖片了!
讓我們看看上面那代碼中,每一行的意義:
#define counter_width 48 這里定義了圖片的寬度,一般都設置為8的整數倍,因為我們想顯示的是6個數字,所以就設置成了8*6=48的寬度
#define counter_height 9 這里設置了圖片的高度,可以任意設置,但是注意,這里的數字直接決定了下面的數組中,是用幾組數來表示一個顯示出的數字
static unsigned char counter_bits[]={7c,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,
fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}
在這里,是圖片用來顯示內容的十六進制的代碼,在這里,是9*6=54個數字來表示,值得一提的是,由於在圖片顯示中,是顯示完了一行後,再顯示第2行,直到最後一行,因此更為准確的描述是6*9顯示,每6個數表示一行(因為我們顯示了6個數字),一共9行(我們的定義中,是採用的高度為9的數組)
正如static unsigned char英文意思為靜態的,無符號的,燒焦的。它只能用來顯示黑白兩種顏色。二進制中的1將來用顯示為黑色,0為白色。
因此,上面的7c、3c這樣的數字,就是一個256位的2進制,其中的1表示黑色,0表示白色,由此繪制出每個數字的圖形。
由於Xbm文件的性質決定,它只能顯示黑/白兩種顏色,而且以數組的方式來表現每個要顯示的圖形,註定了不能用它生成太復雜的圖案。那麼,這樣的圖片格式到底有什麼用呢??當然有的,不少asp論壇/聊天室的登陸驗證碼,就是用這樣的方法在asp中動態生成的。
四.為什麼要打補丁才能正常顯示呢?
在WindowsXP SP2更改後的安全策略中,因為基於安全因素的考慮,默認去掉了對 image/x-xbitmap 圖片格式的支持(該圖片的後綴名為Xbm)。,為什麼微軟在XP的SP2升級包中又要禁止掉它呢??這是因為Xbm的漏洞。
Microsoft Internet EXPlorer和Outlook EXPress在處理WEB頁,HTML郵件,EMAIL附件中畸形Xbm圖象文件會導致崩潰,問題存在於對Xbm文件中的內容缺少檢查,MSIE按照圖象規定的長度和寬度分配內存,攻擊者可以提高超大的長度和寬度數值導致系統消耗內存或者訪問沖突。
換句話說,如果構造一個長寬的尺寸特別大的Xbm文件,很容易導致Windows的內存耗盡,導致程序無響應或者死機。本身來說,這不算一個特別嚴重的漏洞,因為根據安全公告,無法造成溢出,不會存在太大的許可權漏洞。但是由於XP的SP2強調安全性,因此將Xbm功能禁用了。從這點上可以看出,SP2對於安全的確比較重視,將有漏洞的功能基本上都補上或禁用了,作為網路管理員,我對微軟的做法表示支持,因為操作系統默認設置的不安全,常常是造成非專業用戶被攻擊的首要因素。
解禁方法:
由此看出,以後我們訪問某些採用生成Xbm作為驗證代碼的站點的時候,就相當不方便了,如果有必要,可以通過簡單的操作注冊表恢復我們需要的功能。
打開注冊表(開始---運行---regedit----回車),然後進到鍵值[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet EXPlorer\Security]
將blockXbm的值改為00000000(dword,雙位元組),沒有的話新建立一個就可以了。
之後重新IE或者重新啟動機器,則Xbm格式的圖片就可以看到了。
五,Xbm的趨勢
從SP2禁止Xbm的趨勢看出,微軟打算似乎已經開始打算放棄對Xbm格式的支持了。那麼,作為程序編寫者,有必要未雨綢繆,尋找其他生成驗證碼的途徑。在php中,可以通過調用gd庫等方式生成jpg/gif等圖形格式的注冊驗證碼,那麼在asp中有其他的辦法么?
事實上圖片驗證密碼的關鍵是--不能在客戶端留下圖片的真實url,或可對應反推源地址的信息,因此asp可以採用以下2種方式實現支持SP2的圖形驗證碼。
如果是購買的虛擬主機,那麼可以採用將jpg/gif圖片放到資料庫,然後用session傳值的方式,最後利用asp直接從資料庫中輸出圖片,這方法的好處是不需要特別設置伺服器端,壞處則是每次生成驗證圖片時都會需要與資料庫連接,增加了開銷。
如果是有管理員控制許可權的用戶,可以考慮採用第三方組件來實現。天緣個人推薦 ASP圖象組件shotgraph ,它的免費版本對生成的圖形有一定限制,不過已經足夠用來製作驗證碼了。
『陸』 如何將驗證碼網頁已.html為文件名保存並放至自己的網站伺服器根目錄下
『柒』 請問如何驗證簡訊的驗證碼是否正確,是發送後需要保存在自己的服務端嗎還是有驗證介面
一般在生成簡訊的驗證碼的時候,都會先把簡訊驗證碼和該簡訊驗證碼的所屬的用戶身份先保存在自己的服務端,可以保存在資料庫,也可以保存在緩存中。用戶輸入簡訊驗證碼後,根據用戶的手機號碼或其他身份信息,到服務端驗證簡訊驗證碼是否屬於該用戶以及簡訊驗證碼是否還在有效期內。