亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于HTTP協(xié)議的代理掃描方法與流程

文檔序號(hào):12278953閱讀:1039來源:國(guó)知局

本發(fā)明涉及代理服務(wù)領(lǐng)域,具體涉及一種基于HTTP協(xié)議的代理掃描方法。



背景技術(shù):

代理服務(wù)可以通過緩存技術(shù)提高瀏覽速度,也可以用于隱藏真實(shí)IP實(shí)現(xiàn)匿名訪問。也有一些人使用代理突破一些網(wǎng)絡(luò)訪問限制,或者網(wǎng)站的防爬蟲限制,甚至用于DDOS攻擊。通過對(duì)一些常用端口的代理探測(cè),可以識(shí)別出開放的代理服務(wù),避免一些惡意請(qǐng)求。

Nmap是一款用于網(wǎng)絡(luò)發(fā)現(xiàn)和安全審計(jì)的網(wǎng)絡(luò)工具,軟件名稱Nmap是Network Mapper的簡(jiǎn)稱。Nmap可以檢測(cè)主機(jī)是否在線、端口開放情況、偵測(cè)運(yùn)行的服務(wù)類型及版本信息、偵測(cè)操作系統(tǒng)類型與設(shè)備類型信息。Nmap在技術(shù)實(shí)現(xiàn)上是:向端口發(fā)送特定的數(shù)據(jù)包,如向80端口發(fā)送HTTP數(shù)據(jù)包,收到目的端口返回包后,將返回包和Nmap的指紋規(guī)則匹配,如果滿足某個(gè)規(guī)則,則可以證明該端口開放著規(guī)則對(duì)應(yīng)的服務(wù)。

現(xiàn)有的代理掃描方法類似Nmap的服務(wù)識(shí)別,需要編寫大量的代理識(shí)別規(guī)則,然后通過端口探測(cè)的形式識(shí)別代理服務(wù)。這種代理掃描方法的缺點(diǎn)很明顯:一是被探測(cè)的端口可以隨意修改返回?cái)?shù)據(jù)包,來躲避被識(shí)別;二是因?yàn)橐?guī)則數(shù)量有限,通過正則規(guī)則識(shí)別代理服務(wù)數(shù)據(jù)質(zhì)量不高,會(huì)存在誤識(shí)別的現(xiàn)象;三是無法檢測(cè)代理服務(wù)是否是匿名代理。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是提供一種基于HTTP協(xié)議的代理掃描方法,通過搭建特殊的代理請(qǐng)求目的端,識(shí)別代理是否匿名;通過對(duì)代理返回頁(yè)面的哈希比對(duì),識(shí)別代理服務(wù)器是否篡改網(wǎng)頁(yè)。

為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:

一種基于HTTP協(xié)議的代理掃描方法,包括以下步驟:

步驟1:搭建一個(gè)只有一個(gè)頁(yè)面的Web服務(wù),計(jì)算這個(gè)Web頁(yè)面的哈希值;

步驟2:步驟1的Web服務(wù)需要來記錄請(qǐng)求IP、X-Forwarded-For,用于識(shí)別代理是否匿名;

步驟3:對(duì)一段IP的特定端口,生成目的地址為所述Web服務(wù)的代理請(qǐng)求,如果請(qǐng)求成功,則所述IP和端口為代理服務(wù);

步驟4:計(jì)算代理請(qǐng)求返回頁(yè)面的哈希值,與搭建的Web頁(yè)面的哈希值比較,若哈希值不一致,則說明代理服務(wù)篡改了Web頁(yè)面。

進(jìn)一步的,所述特定端口為80端口。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:1、掃描代理時(shí)直接指定掃描IP和端口,掃描范圍更廣。2、通過自定義Web服務(wù)日志格式,識(shí)別出代理服務(wù)器,以及代理服務(wù)是否匿名。3、通過服務(wù)端頁(yè)面和代理請(qǐng)求返回頁(yè)面的哈希對(duì)比,識(shí)別出代理服務(wù)是否篡改頁(yè)面內(nèi)容。

具體實(shí)施方式

下面通過具體實(shí)施例對(duì)本發(fā)明方法進(jìn)行進(jìn)一步說明。

1、Web服務(wù)端

通過安裝一個(gè)Nginx來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Web服務(wù),然后配置日志記錄如下數(shù)據(jù):

1)http_x_forwarded_for,如果是透明代理,這里會(huì)記錄真實(shí)的代理請(qǐng)求客戶端地址;

2)remote_addr,請(qǐng)求web服務(wù)的地址,如果通過代理,則這里是代理服務(wù)器的地址;

3)request,客戶端請(qǐng)求的具體URL;

客戶端在請(qǐng)求Web服務(wù)時(shí),需要在URL中附帶客戶端IP,以及代理IP和端口,假如3.3.3.3是我們掃描客戶端IP,8.8.8.8是代理服務(wù)的IP,80是代理服務(wù)的端口,那請(qǐng)求的URL后綴為:/proxy?myip=3.3.3.3&proxy=http:8.8.8.8:80。這個(gè)URL后綴會(huì)記錄在我們搭建的WEB服務(wù)的request變量中。

如果web服務(wù)日志中http_x_forwarded_for的值和remote_addr的值不同,且http_x_forwarded_for的值和request中的myip相同,那得出這個(gè)代理是透明代理,代理地址及是request變量中的proxy。

如果web服務(wù)日志中http_x_forwarded_for的值為空,且remote_addr的值和request變量中的proxy變量相同,則說明該代理服務(wù)為匿名代理,代理地址為request中的proxy。

2、掃描客戶端

在掃描客戶端,假如要掃描的代理地址為8.8.8.8,代理端口為80,掃描客戶的的IP為3.3.3.3,代理請(qǐng)求目的段的IP為1.1.1.1。這里以GO語言作為示例,代理請(qǐng)求的代碼如下:

c:=new(http.Client)

req:=request.NewRequest(c)

req.Proxy=“http://8.8.8.8:80

resp,err:=req.Get(“http://1.1.1.1/proxy?myip=3.3.3.3&proxy=http:8.8.8.8:80”)

resp_hash:=hash(resp)

其中req.Proxy指定的是代理地址為代理地址,使用這個(gè)代理地址向我們搭建的Web服務(wù)端發(fā)送一個(gè)HTTP的Get請(qǐng)求。resp_hash為我們計(jì)算的返回結(jié)果哈希值,這個(gè)哈希值通過和服務(wù)端計(jì)算的頁(yè)面哈希值比較,可以識(shí)別代理是否篡改網(wǎng)站內(nèi)容。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1