討論Q群: 93573027
吐槽下正方系統,在學校的時候選課時,人一多就老是彈出個錯誤頁面!還要早早起床去蹲守在電腦旁!那段日子真是難挨咯!
如果知道已經知道IE的F12開發者工具里面的如何捕獲和模擬登錄的原理可以跳過這篇文章直接進入下篇代碼講解。
現在開始正題!要實現用戶的登錄,那么首先就必須要了解一般網站中是怎么判斷用戶是否登錄的。
HTTP協議是一個無連接的協議,也就是說這次對話的內容和狀態與上次的無關,為了實現和用戶的持久交互,網站與瀏覽器之前在剛建立會話時將在服務 器內存中建立一個Session,該Session標識了該用戶(瀏覽器),每一個Session都有一個唯一的ID,第一次建立會話時服務器將生成的這 個ID傳給瀏覽器,瀏覽器在接下來的瀏覽中每一個發向服務器的請求中都將包含該SessionID,從而標識了自己的身份。
服務器上是使用內存來保存Session中的信息,那么瀏覽器又使用什么來保存服務器分配的這個SessionID了,一般網站上使用的是Cookies,但是我用抓包的時候發現正方系統用的不是Cookies,而是使用地址欄上的一個狀態碼,標致你的登錄信息。而我們要做的模擬登錄原理是:在准備進入登錄界面時抓包,獲取登錄界面的地址,驗證碼和狀態碼,然后把我們的帳號密碼驗證碼一並提交到提交頁面。
剛才提到抓包,其實學過網絡的都知道的,無非就是把瀏覽器向服務器發送的信息和服務器回應的信息截取下來。這里我們直接用系統自帶的IE瀏覽器,打開瀏覽器按F12或者點工具-》開發者工具。然后點擊網絡―》開始捕獲。
好像下面這樣:
在這可以看到瀏覽器和服務器間是怎樣私密聊天的。
工具和原理明白了,轉入實際編碼:當我們要進入登錄界面時點擊開始捕獲
我們只要留意這個.aspx結尾的文件就行了,可以看到我們要的登錄的地址,和地址用括號括起來的狀態碼。點擊這地址轉到詳細視圖,可以看到瀏覽器向服務器請求的標頭和正文,還有其他信息。現在這里有用的信息就是標頭信息。既然要模擬瀏覽器就要做戲做全套。地址和狀態碼,標頭我們知道了,現在還差驗證碼,返回摘要視圖,查找到以CheckCode.aspx后綴的的請求。轉到詳細視圖可以看到這就是一張驗證碼的圖片!如果沒出錯的話,我們在地址輸入主機host地址+狀態碼+CheckCode.aspx;例如:這里地址http://202.192.143.230+我們的狀態碼(dopghl45jj2qmdeca4gqtw55)+CheckCode.aspx;就可以訪問到驗證碼圖片!
說明一下:制件這個軟件純粹是個人業余閑着沒事的!目的在於讓喜歡的同學能夠掌握一門技術,實現模擬登錄,驗證碼識別,模擬瀏覽器接收響應和發送請求,正則表達式的使用.希望大家能在制作這個軟件的時候學會這以上的知識!不希望看到有人拿這種東西去賺錢!這里的源碼全部公開!有不懂可以評論或者留言給我!寫得比較啰嗦,只是給小白的學習,大神見笑了!