亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

從session實現機制分析模擬請求驗證碼的可行性

2019-11-17 02:02:01
字體:
來源:轉載
供稿:網友

session實現機制分析模擬請求驗證碼的可行性

悲劇了,發現寫完這篇blog沒有配上這個格調超高的標題。

1.0問題背景現在要實現一個帶驗證碼網站的的自動登陸功能。驗證碼識別過程不再這篇文章的討論之中。(之后有篇文章我會詳細的總結驗證碼的識別過程)。現在問題來了,怎么拿到你本次請求登陸頁面的驗證碼圖片?2.0方案分析現在有幾種思路:(1)請求登陸頁面,截取驗證碼圖片,類似截屏,seleinum,webbrower的DrawToBitmap()等。(2)還是webbrower,將圖片復制到剪切板在從剪切板中搞出來
  • HTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
  • IHTMLControlElement imge;
  • imge = (IHTMLControlElement)img.DomElement;
  • rang.add(imge);
  • rang.execCommand("Copy", false, null);
  • Image image = Clipboard.GetImage();
(3)前兩種都是用一種類似瀏覽器的軟件幫我們完成登陸頁面的請求,下面我們來深入的分析下請求登陸頁面這個過程是什么樣子的。第一次請求這個頁面在瀏覽器中我們看到的是這個頁面,我們用fidder抓包發現,我們關系的請求只有兩次。所以,我們第三種思路也來了。那我們用webclient或httpwebrequset模擬這兩次請求不就完事了?一次請求登陸頁面,一次請求驗證碼,然后模擬表單提交,多簡單的事!悲劇 就發生在這:你模擬請求的驗證碼輸入后總是不對,一大堆的人都說你對驗證碼發了二次請求,你獲得的驗證碼是上一次的!!有的人一想,我靠,是這么回事啊,怪不得不行呢,這方法不行啊。大家仔細想一想,我怎么對驗證碼發送二次請求了?老子一共模擬兩次請求,一次請求登陸頁面,一次請求驗證碼,就一次好嗎!所以這種說法是錯誤的,我們從頭來分析:第一次是請求這個登陸頁面,這是請求頭這是response頭:我們發現服務器向客戶端寫了一個cookie;之后我們討論這個cookie的作用。我們繼續觀察第二請求,該請求是怎么發出來的呢?我們現在都應該知道了,第一次請求服務器返回的是這個登陸頁面的html代碼,對吧,瀏覽器拿到這個html代碼后它就要渲染了,就是在瀏覽器給我畫這個漂亮的頁面。當它看到這串代碼時 <img width="60" height="25" src='/cas/codeimage/>它就認為,這是一個圖片啊,我趕緊去按圖片地址去拿吧,晚了就玩了,這樣,他就發送了第二個請求。我們來看報文:發現了什么,請求報文中竟然帶了cookie。這就要涉及到cookie的工作原理了,cookie是寫在客戶端的,就是一個鍵值對,就是是寫在你瀏覽器對應的cookie存放位置,cookie是不能跨瀏覽器的,360瀏覽器的cookie你google瀏覽器是不能玩的。cookie是不能跨域的,就是不能a.com的cookie不能提交到c.com.而且cookie在同一域名下,會自動提交的,這也說明了第二次請求為什么會無緣無故的多了個cookie。cookie的作用path,過期時間等其他參數這里就不說了。好了,關鍵的東西我們都發現了,就是這個cookie搞的。它到底是什么鬼?是干啥的?我們來分析下驗證碼的實現機制,不是講怎么畫出來的,用戶去請求驗證碼,服務器生成驗證碼字符,然后把他存在session里,另外又把這個字符串畫到圖片上返回給瀏覽器。有人問session又是什么鬼?session也是一個鍵值對,跟cookie不同的是,session是存在服務器端的。服務器端有個session池,里面放的就是一個一個的鍵值對。我們填完了驗證碼,提交到服務器,服務器開始判斷你填的對不對,他怎么判斷的呢?逗比,服務器不是有session嗎?一比不就得了嘛!怎么比?服務器的session多了去了,所以只能拿著鍵,去找值,那這個值和你提交過來的值比。那么問題來了,鍵是那來的?你什么時候提交過來的?見鬼了?相信大家都已經想到了,這個鍵就是剛才那個cookie的值。這樣大家也就明白了,原來session是通過cookie實現的啊,你以為呢?到這里,我們就找到第二次模擬請求驗證碼過程發生的問題了。原來是這次請求沒有帶上第一次請給的cookie。你沒帶,說明你提交的鍵是null,服務器卻是真實有的,當然每次請求都錯誤 了。知道錯誤地點了,這問題也就解決了:提交的時候直接帶上第一次的cookie不就結了。簡單代碼: CookieContainer cookiesContainer = new CookieContainer(); if (response1.Cookies.Count > 0) { cookiesContainer.Add(response1.Cookies); } requst2.CookieContainer =cookieContainer;3.0總結 這里要說明下,這個cookie是到底什么時候給你寫到客戶端?按道理來講,這個cookie這與你的驗證碼有關,你訪問驗證碼圖片時候,給你寫個才對。但這個實驗網站他訪問登陸頁面就給你寫了,到你訪問驗證碼頁面時候,估計是他先判斷你有沒有寫cookie,沒寫的話給你寫上。所以這cookie在哪還得自己抓包看。另外還有很多隱藏域的值參與驗證,分析的時候也要注意。這還有個問題:服務器設定驗證碼session的時候,鍵直接設置為"VCde",還用從cookie里找干嘛?針對一個用戶來說,這樣是可以的,如果多個用戶同時訪問的話,會發生什么情況。A剛拿到驗證碼,VCde存的是A的字符。這時候B來登陸,VCde立馬變成B的字符,A興致勃勃的填完了去登陸,驗證碼錯誤!所以,cookie中村的不是vcode的key,他是sessionId,服務器中是session空間像一個柜子,sessionid就是那個柜子的鑰匙,而柜子里存的才是你網session中存的數據,當然了,驗證碼就存在柜子里。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品国产91久久性色| 国产精品一区久久久| 久久精品亚洲94久久精品| 亚洲成人av片在线观看| 国模吧一区二区三区| 日韩中文字幕国产| 91香蕉嫩草影院入口| 亚洲伊人成综合成人网| 欧美做爰性生交视频| 欧美噜噜久久久xxx| 欧美性xxxxx极品| 久久久国产一区| 日韩在线资源网| 国产亚洲一区二区精品| 日韩精品亚洲视频| 视频一区视频二区国产精品| 国产精品久久久久av| 91高清免费视频| 欧美肥老太性生活视频| 欧美性极品少妇精品网站| 精品欧美一区二区三区| 日本成人激情视频| 欧美成人小视频| 亚洲欧美另类人妖| 欧美国产在线视频| 欧美在线国产精品| 日韩欧美亚洲综合| 亚洲精品综合久久中文字幕| 国产精品福利无圣光在线一区| 国产精品自拍偷拍视频| 欧美裸身视频免费观看| 久久精品国产欧美激情| 亚洲国产精品资源| 日韩成人激情视频| 色噜噜国产精品视频一区二区| 精品成人69xx.xyz| 久久久久久久色| 久久精品国产一区二区电影| 国产欧美一区二区三区四区| 亚洲欧美国产一区二区三区| 国产亚洲aⅴaaaaaa毛片| 欧美视频专区一二在线观看| 丝袜亚洲欧美日韩综合| 国产欧美精品一区二区三区介绍| 久久亚洲精品一区二区| 亚洲片在线资源| 亚洲最新视频在线| 亚洲品质视频自拍网| 久久乐国产精品| 国产精品国模在线| 亚洲成人激情在线观看| 日韩欧中文字幕| 91av视频在线| 国产视频自拍一区| 国产区精品在线观看| 日韩欧美福利视频| 日韩av大片在线| 亚洲伊人成综合成人网| 亚洲国内精品视频| 亚洲综合中文字幕在线观看| 国产免费一区视频观看免费| 国产精品一区二区3区| 国产精品视频免费观看www| 日韩欧美国产一区二区| 最新69国产成人精品视频免费| 国产福利视频一区| 欧美在线视频导航| 中文字幕在线日韩| 欧美日韩激情视频8区| 伊人久久大香线蕉av一区二区| 日韩精品www| 亚洲第一精品夜夜躁人人爽| 亚洲精品aⅴ中文字幕乱码| 自拍视频国产精品| 欧美国产第一页| 久久免费在线观看| 国产精品一区专区欧美日韩| 国产精品久久电影观看| 久久久久久久久亚洲| 中文字幕久精品免费视频| 国产美女久久精品| 久久精品中文字幕电影| 亚洲精品美女免费| 亚洲国产成人久久综合| 精品久久久久久亚洲国产300| 久久全球大尺度高清视频| 91精品国产色综合| 精品露脸国产偷人在视频| 97久久久久久| 国产成人精品一区二区在线| 亚洲一区二区在线播放| 亚洲精品免费在线视频| 亚洲精品成人久久| 色婷婷综合久久久久中文字幕1| 久久影院在线观看| 粉嫩老牛aⅴ一区二区三区| 狠狠久久五月精品中文字幕| 一区二区三区黄色| 亚洲男人7777| 91网站在线看| 日韩免费av在线| 精品欧美国产一区二区三区| 欧美www在线| 在线播放精品一区二区三区| 欧美电影免费观看高清完整| 91亚洲国产成人精品性色| 国产精品欧美风情| 亚洲精品日产aⅴ| 日韩av电影手机在线观看| 精品国产一区二区三区四区在线观看| 日韩欧美aⅴ综合网站发布| 久久精品视频中文字幕| 91精品中文在线| 亚洲一区中文字幕在线观看| 91九色精品视频| 亚洲欧美另类人妖| 久久影视电视剧凤归四时歌| 国产精品日韩在线一区| 国产亚洲精品美女| 国产欧美中文字幕| 国产精品成人久久久久| 国产91网红主播在线观看| 亚洲国产精品999| 成人福利免费观看| 国产亚洲激情视频在线| 国产午夜精品全部视频播放| 亚洲第一区中文字幕| 久久久精品在线| 久久久精品久久久久| 久久手机免费视频| 欧美一级大片在线免费观看| 国产精品入口福利| 92看片淫黄大片欧美看国产片| 亚洲jizzjizz日本少妇| 亚洲综合在线中文字幕| 欧美限制级电影在线观看| 国产精品高潮呻吟视频| 日本a级片电影一区二区| 欧美一区在线直播| 欧美专区在线播放| 欧美成人免费播放| 亚洲色图15p| 日韩有码在线观看| 国产97免费视| 欧美午夜宅男影院在线观看| 国产v综合v亚洲欧美久久| 国产欧美日韩中文字幕| 亚洲一区二区在线播放| 国产日韩中文字幕在线| 日韩av大片免费看| 人体精品一二三区| 亚洲国内高清视频| 国产成人精品在线观看| 欧美国产视频一区二区| 国产精品三级在线| 成人a视频在线观看| 日韩精品视频三区| 热久久这里只有| 国产一区二区三区在线观看网站| 亚洲欧美精品一区二区| 国产精品久久久久久久久| 精品久久久久久久大神国产| 91精品国产自产在线老师啪| 欧美日韩午夜激情|