專利名稱:基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)數(shù)據(jù)安全技術(shù),尤其涉及基于內(nèi)容分發(fā)網(wǎng)絡(luò)(⑶N網(wǎng)絡(luò))的網(wǎng)站安全技術(shù),即網(wǎng)站內(nèi)容智能防抓取的方法和系統(tǒng)。
背景技術(shù):
網(wǎng)站內(nèi)容智能防抓取技術(shù)的基本思想是,當(dāng)客戶端對(duì)網(wǎng)站發(fā)起內(nèi)容請(qǐng)求時(shí),CDN系統(tǒng)的智能內(nèi)容防抓取模塊開始監(jiān)控客戶端的訪問行為特征,當(dāng)客戶端訪問行為異常時(shí),CDN系統(tǒng)將根據(jù)智能防抓取模塊給出的判定結(jié)果來判斷客戶端屬于正常網(wǎng)友還是抓取機(jī)器,并響應(yīng)相應(yīng)的內(nèi)容。目前的網(wǎng)站內(nèi)容防抓取的實(shí)現(xiàn)方案如圖I所示。源站接收客戶端請(qǐng)求(步驟S10)后,源站的防抓取模塊監(jiān)測(cè)客戶端訪問行為(步驟S11),會(huì)根據(jù)所配置的客戶端訪問頻率來判斷客戶端為正常的網(wǎng)友還是惡意抓取機(jī)器(步驟S12)。當(dāng)客戶端訪問頻率超過閾值時(shí),源站認(rèn)為客戶端是惡意抓取機(jī)器,拒絕其請(qǐng)求,返回403響應(yīng)(步驟S13)。否則,源站認(rèn)為客戶端是正常的網(wǎng)友,返回其請(qǐng)求的內(nèi)容(步驟S14)?,F(xiàn)有的網(wǎng)站內(nèi)容防抓取實(shí)現(xiàn)方案存在三個(gè)弊端I.根據(jù)客戶端的IP進(jìn)行判斷,粒度太粗,目前很多企業(yè)對(duì)外都只是一個(gè)IP或少數(shù)幾個(gè)IP出口,容易產(chǎn)生誤判,導(dǎo)致其他的客戶端一直不能訪問網(wǎng)站;2.判斷依據(jù)不夠靈活,只能根據(jù)其訪問頻率來判斷;3.處理方式不夠智能,在判斷為機(jī)器后,不能自動(dòng)解除禁問狀態(tài)。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決上述問題,提供了一種基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能 防抓取方法和系統(tǒng),能夠減少由于誤判導(dǎo)致的正??蛻舳藷o法訪問網(wǎng)站,且能自動(dòng)解除禁問狀態(tài)。本發(fā)明的技術(shù)方案為本發(fā)明揭示了一種基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法,包括內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為;判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若客戶端訪問頻率未超過預(yù)設(shè)閾值則認(rèn)為客戶端是正常網(wǎng)站用戶,直接返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束;若客戶端訪問頻率超過預(yù)設(shè)閾值則繼續(xù)判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長;若客戶端本次請(qǐng)求時(shí)間大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則認(rèn)為客戶端不在防抓取狀態(tài)內(nèi),返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束;若客戶端本次請(qǐng)求時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則認(rèn)為客戶端仍在防抓取狀態(tài)內(nèi),返回客戶端驗(yàn)證碼頁面;判斷客戶端是否提交了正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束;若未提交正確的驗(yàn)證碼則判斷客戶提交的非法驗(yàn)證碼的次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面以供客戶端再次輸入驗(yàn)證碼,若超過則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回表示服務(wù)器拒絕請(qǐng)求的403響應(yīng)。本發(fā)明另外揭示了一種基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取系統(tǒng),包括客戶端訪問行為監(jiān)測(cè)模塊,內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為;客戶端訪問頻率判斷模塊,判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若客戶端訪問頻率未超過預(yù)設(shè)閾值則認(rèn)為客戶端是正常網(wǎng)站用戶,直接返回客戶端所請(qǐng)求的內(nèi)容,若客戶端訪問頻率超過預(yù)設(shè)閾值則繼續(xù)啟動(dòng)后一模塊; 客戶端請(qǐng)求時(shí)間判斷模塊,判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長,若客戶端本次請(qǐng)求時(shí)間大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則返回客戶端所請(qǐng)求的內(nèi)容,若客戶端本次請(qǐng)求時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則啟動(dòng)后一模塊;客戶端驗(yàn)證模塊,提供一客戶端驗(yàn)證碼頁面,判斷客戶端是否提交了正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則返回客戶端所請(qǐng)求的內(nèi)容,若未提交正確的驗(yàn)證碼則判斷客戶提交的非法驗(yàn)證碼的次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面以供客戶端再次輸入驗(yàn)證碼,若超過則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回表示服務(wù)器拒絕請(qǐng)求的403響應(yīng)。本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明的方案是當(dāng)客戶端向網(wǎng)站發(fā)起訪問請(qǐng)求時(shí),監(jiān)控客戶端的訪問行為,當(dāng)客戶端的訪問頻率超過預(yù)設(shè)閾值,且本次請(qǐng)求的時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長時(shí),則認(rèn)為該客戶端有可能是抓取機(jī)器,因此對(duì)該客戶端的每次訪問都返回驗(yàn)證碼頁面,在驗(yàn)證碼頁面中,如果客戶端提交的驗(yàn)證碼是正確的,則認(rèn)為該客戶端是正常用戶,如果客戶端提交非法驗(yàn)證碼的次數(shù)超過閾值,則認(rèn)為該客戶端是抓取機(jī)器,對(duì)客戶端禁止訪問,即讓CDN系統(tǒng)返回403響應(yīng),而提交非法驗(yàn)證碼的次數(shù)未超過閾值時(shí),系統(tǒng)會(huì)重新返回驗(yàn)證碼頁面進(jìn)一步判斷是不是抓取機(jī)器。相較于現(xiàn)有技術(shù),本發(fā)明的方案增加了判斷依據(jù),提高了判斷精度,減少誤判現(xiàn)象的發(fā)生,而且提高了處理方式的智能化,在判斷出客戶端是抓取機(jī)器之后能自動(dòng)解除禁問狀態(tài)。
圖I示出了傳統(tǒng)的網(wǎng)站內(nèi)容防抓取方法的流程圖。圖2示出了本發(fā)明的基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法的較佳實(shí)施例的流程圖。圖3示出了本發(fā)明的基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取系統(tǒng)的較佳實(shí)施例的原理圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。圖2示出了本發(fā)明的基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法的較佳實(shí)施例的流程。請(qǐng)參見圖2,本實(shí)施例的網(wǎng)站內(nèi)容智能防抓取方法的各個(gè)實(shí)施步驟詳述如下。步驟S20 :內(nèi)容分發(fā)網(wǎng)絡(luò)接收客戶端請(qǐng)求。步驟S21 :監(jiān)測(cè)客戶端訪問行為。步驟S22 :判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若超過則進(jìn)入步驟S23,否則轉(zhuǎn)入步驟S28。步驟S23 :判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長。若大于則轉(zhuǎn)入步驟S28,否則轉(zhuǎn)入步驟S24。步驟S24 ADN系統(tǒng)返回客戶端驗(yàn)證碼頁面,供用戶輸入驗(yàn)證碼。 步驟S25 :判斷客戶端是否提交正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則轉(zhuǎn)入步驟S28,否則轉(zhuǎn)入步驟S26。步驟S26 :判斷客戶端提交的非法驗(yàn)證碼的次數(shù)是否超過閾值,若超過則進(jìn)入步驟S27,否則返回步驟S24重新判斷是否是抓取機(jī)器。步驟S27 =CDN系統(tǒng)認(rèn)為客戶端是抓取機(jī)器,禁止該客戶端的抓取,返回表示服務(wù)器拒絕請(qǐng)求的403響應(yīng)。步驟S28 =CDN系統(tǒng)認(rèn)為客戶端是正常訪問,響應(yīng)所請(qǐng)求的正確響應(yīng)內(nèi)容。圖3示出了本發(fā)明的基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取系統(tǒng)的較佳實(shí)施例的原理。請(qǐng)參見圖3,本實(shí)施例的網(wǎng)站內(nèi)容智能防抓取系統(tǒng)包括客戶端訪問行為監(jiān)測(cè)模塊10、客戶端訪問頻率判斷模塊11、客戶端請(qǐng)求時(shí)間判斷模塊12、客戶端驗(yàn)證模塊13。客戶端訪問行為監(jiān)測(cè)模塊10中,內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為??蛻舳嗽L問頻率判斷模塊11中,判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若客戶端訪問頻率未超過預(yù)設(shè)閾值則認(rèn)為客戶端是正常網(wǎng)站用戶,直接返回客戶端所請(qǐng)求的內(nèi)容,若客戶端訪問頻率超過預(yù)設(shè)閾值則繼續(xù)啟動(dòng)客戶端請(qǐng)求時(shí)間判斷模塊12??蛻舳苏?qǐng)求時(shí)間判斷模塊12中,判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長,若客戶端本次請(qǐng)求時(shí)間大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則返回客戶端所請(qǐng)求的內(nèi)容,若客戶端本次請(qǐng)求時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則啟動(dòng)客戶端驗(yàn)證模塊13。客戶端驗(yàn)證模塊13中,提供一客戶端驗(yàn)證碼頁面,判斷客戶端是否提交了正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則返回客戶端所請(qǐng)求的內(nèi)容,若未提交正確的驗(yàn)證碼則判斷客戶提交的非法驗(yàn)證碼的次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面以供客戶端再次輸入驗(yàn)證碼,若超過則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回表示服務(wù)器拒絕請(qǐng)求的403響應(yīng)。上述實(shí)施例是提供給本領(lǐng)域普通技術(shù)人員來實(shí)現(xiàn)和使用本發(fā)明的,本領(lǐng)域普通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對(duì)上述實(shí)施例做出種種修改或變化,因而本發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書所提到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1.一種基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法,包括 內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為; 判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若客戶端訪問頻率未超過預(yù)設(shè)閾值則認(rèn)為客戶端是正常網(wǎng)站用戶,直接返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束; 若客戶端訪問頻率超過預(yù)設(shè)閾值則繼續(xù)判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長; 若客戶端本次請(qǐng)求時(shí)間大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則認(rèn)為客戶端不在防抓取狀態(tài)內(nèi),返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束; 若客戶端本次請(qǐng)求時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則認(rèn)為客戶端仍在防抓取狀態(tài)內(nèi),返回客戶端驗(yàn)證碼頁面; 判斷客戶端是否提交了正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則返回客戶端所請(qǐng)求的內(nèi)容,流程結(jié)束; 若未提交正確的驗(yàn)證碼則判斷客戶提交的非法驗(yàn)證碼的次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面以供客戶端再次輸入驗(yàn)證碼,若超過則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回表示服務(wù)器拒絕請(qǐng)求的403響應(yīng)。
2.一種基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取系統(tǒng),包括 客戶端訪問行為監(jiān)測(cè)模塊,內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為; 客戶端訪問頻率判斷模塊,判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若客戶端訪問頻率未超過預(yù)設(shè)閾值則認(rèn)為客戶端是正常網(wǎng)站用戶,直接返回客戶端所請(qǐng)求的內(nèi)容,若客戶端訪問頻率超過預(yù)設(shè)閾值則繼續(xù)啟動(dòng)后一模塊; 客戶端請(qǐng)求時(shí)間判斷模塊,判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長,若客戶端本次請(qǐng)求時(shí)間大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則返回客戶端所請(qǐng)求的內(nèi)容,若客戶端本次請(qǐng)求時(shí)間小于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長則啟動(dòng)后一模塊; 客戶端驗(yàn)證模塊,提供一客戶端驗(yàn)證碼頁面,判斷客戶端是否提交了正確的驗(yàn)證碼,若提交了正確的驗(yàn)證碼則返回客戶端所請(qǐng)求的內(nèi)容,若未提交正確的驗(yàn)證碼則判斷客戶提交的非法驗(yàn)證碼的次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面以供客戶端再次輸入驗(yàn)證碼,若超過則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回表示服務(wù)器拒絕請(qǐng)求的·403響應(yīng)。
全文摘要
本發(fā)明公開了基于內(nèi)容分發(fā)網(wǎng)絡(luò)的網(wǎng)站內(nèi)容智能防抓取方法和系統(tǒng),能夠減少由于誤判導(dǎo)致的正??蛻舳藷o法訪問網(wǎng)站,且能自動(dòng)解除禁問狀態(tài)。其技術(shù)方案為內(nèi)容分發(fā)網(wǎng)絡(luò)系統(tǒng)接收客戶端請(qǐng)求,監(jiān)測(cè)客戶端訪問行為;判斷客戶端訪問頻率是否超過預(yù)設(shè)閾值,若未超過則直接返回所請(qǐng)求的內(nèi)容;否則繼續(xù)判斷客戶端本次請(qǐng)求時(shí)間是否大于上次超過訪問頻率的時(shí)間加上預(yù)設(shè)的防抓取狀態(tài)時(shí)長;若大于則返回所請(qǐng)求的內(nèi)容;否則返回客戶端驗(yàn)證碼頁面;判斷客戶端是否提交了正確的驗(yàn)證碼,若是則返回所請(qǐng)求的內(nèi)容;否則判斷客戶提交的非法驗(yàn)證碼次數(shù)是否超過設(shè)定值,若未超過則返回客戶端驗(yàn)證碼頁面,否則認(rèn)為客戶端是抓取機(jī)器,對(duì)其禁止訪問,返回403響應(yīng)。
文檔編號(hào)G06F17/30GK102970296SQ20121048046
公開日2013年3月13日 申請(qǐng)日期2012年11月22日 優(yōu)先權(quán)日2012年11月22日
發(fā)明者洪珂, 郭文強(qiáng), 張穎 申請(qǐng)人:網(wǎng)宿科技股份有限公司