胡靜靜,鄭吉鴻
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,安徽 合肥 230009;2.淮北職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,安徽 淮北 235000;3.淮北職業(yè)技術(shù)學(xué)院 招生辦,安徽 淮北 235000)
利用JavaScript重定向跳轉(zhuǎn)作弊技術(shù)的研究
胡靜靜1,2,鄭吉鴻3
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,安徽 合肥 230009;2.淮北職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,安徽 淮北 235000;3.淮北職業(yè)技術(shù)學(xué)院 招生辦,安徽 淮北 235000)
搜索引擎中作弊技術(shù)已經(jīng)成為網(wǎng)絡(luò)發(fā)展的一種主要挾持手段.本文對(duì)基于JavaScript網(wǎng)頁中常用的重定向技術(shù)進(jìn)行了分析,并給出了簡(jiǎn)單實(shí)用的解決代碼.
JavaScript;重定向;作弊
當(dāng)今社會(huì),互聯(lián)網(wǎng)已經(jīng)是人們獲得信息,進(jìn)行資源交流十分普及的方式,而搜索引擎則可以根據(jù)用戶的檢索需求,列出用戶所需的相關(guān)信息.作弊者利用JavaScript重定向進(jìn)行作弊,將訪問者使用搜索引擎引導(dǎo)到作弊者的目的頁面,進(jìn)而達(dá)到作弊的目的,由于這種方法形式各異,且不易被察覺,因此,該手段目前十分普遍.
重定向技術(shù)顧名思義,就是將原始的數(shù)據(jù)源通過網(wǎng)絡(luò)重新定義到其他位置的另一個(gè)數(shù)據(jù)源.使用重定向技術(shù)進(jìn)行搜索時(shí),即便被搜索引擎請(qǐng)求的頁面的位置發(fā)生了改變,仍然可以通過自動(dòng)跳轉(zhuǎn)進(jìn)行自動(dòng)轉(zhuǎn)向.重定向技術(shù)可以分為兩類,一類是服務(wù)器端重定向,一類是客戶端重定向.
1.1 重定向狀態(tài)碼
基于HTTP狀態(tài)代碼的重定向是指向服務(wù)器發(fā)送瀏覽請(qǐng)求時(shí) (如URL地址,GET,POST等),服務(wù)器返回一組HTTP數(shù)據(jù)流報(bào)頭其中包含的某種狀態(tài)碼.HTTP報(bào)頭部分使用狀態(tài)代碼來表示[1],重定向狀態(tài)碼需要客戶端采取下一步操作才能完成請(qǐng)求.HTTP標(biāo)準(zhǔn)包含的重定向狀態(tài)碼為3XX,具體定義如上圖.
1.2 基于META標(biāo)簽的重定向
下面的代碼可以實(shí)現(xiàn)基于META標(biāo)簽進(jìn)行重定向.
META標(biāo)簽寫在Web頁面頭部,設(shè)置標(biāo)簽屬性值可以實(shí)現(xiàn)重定向.http-equiv屬性值設(shè)為refresh即可實(shí)現(xiàn)重定向,Content屬性的值表示重定向前的延時(shí),單位為秒,可設(shè)為0,url表示重定向跳轉(zhuǎn)的鏈接.這種基于META標(biāo)簽的重定向是一種最易于實(shí)現(xiàn)的客戶端重定向技術(shù),它發(fā)生在部分頁面載入加上設(shè)定的延時(shí)之后.
1.3 JavaScript實(shí)現(xiàn)重定向
目前,最常見客戶端重定向(Redirect)技術(shù)是基于JavaScript的重定向.這種重定向發(fā)生在客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求,要求獲取一個(gè)資源,但是服務(wù)器接收請(qǐng)求后發(fā)現(xiàn)資源實(shí)際在另外一個(gè)位置時(shí).可以實(shí)現(xiàn)重定向的方法很多,下面給出2種方法均可實(shí)現(xiàn).
上述三種重定向方法在實(shí)際使用時(shí)各有優(yōu)缺點(diǎn),服務(wù)器端重定向,是在不同頁面之間的轉(zhuǎn)向是直接在服務(wù)器端完成的,客戶端只能看到結(jié)果,而不能看到轉(zhuǎn)向的過程.由于搜索引擎蜘蛛通常無法訪問JavaScript的內(nèi)容.例如,當(dāng)百度蜘蛛對(duì)包含JavaScript的網(wǎng)頁編制索引時(shí),它只會(huì)將該網(wǎng)頁編入索引,但不會(huì)去追蹤JavaScript本身所隱藏的任何鏈接或?qū)⑦@些鏈接編入索引.在JavaScript和非腳本標(biāo)記中分別放置不同的文字會(huì)違反百度的網(wǎng)站站長指南,因?yàn)槿绻@樣做,網(wǎng)站會(huì)對(duì)用戶(能夠看到基于JavaScript的文字)和搜索引擎(能夠看到非腳本標(biāo)記中的文字)分別顯示和隱藏不同的內(nèi)容,也就是說用戶看到的信息和蜘蛛看到的信息是不一樣的.相關(guān)研究顯示,使用腳本進(jìn)行重定向的頁面中,作弊頁面的數(shù)量是正常頁面的3倍[2].研究作弊者使用JavaScript進(jìn)行作弊方式可以有效地識(shí)別垃圾網(wǎng)頁,因此,我們將當(dāng)前作弊者常用的基于JavaScript重定向的作弊手段進(jìn)行了如下分類:
2.1 直接重定向
通過下面的代碼通過腳本直接修改頁面的位置屬性即可實(shí)現(xiàn).
也可以通過一些條件語句進(jìn)行判斷來實(shí)現(xiàn)重定向.
2.2 字符串操作結(jié)合
在上一種方式中是將整個(gè)目的URL作為一個(gè)number string,為了避免這種情況,采用如下代碼來實(shí)現(xiàn)字符串操作結(jié)合:
2.3 使用Unescape解碼方法
通過下面的代碼可以實(shí)現(xiàn)將網(wǎng)頁重定向至http://spampage.com.
2.4 自定義解碼函數(shù)的方法
Unescape解碼是固定的解碼方式,有些作弊者為了避免作弊被發(fā)覺,可以利用計(jì)算機(jī)統(tǒng)計(jì)的方法找出其中某些字符串匹配的規(guī)律,使用自定義的方式將一些解碼函數(shù)自定義,以此避免出現(xiàn)固定的匹配模式.可用如下代碼實(shí)現(xiàn)使用自編碼方式重定向至http://spampage.com.
2.5 注入方式
腳本的本身具有運(yùn)行時(shí)會(huì)產(chǎn)生更多的腳本指令的特點(diǎn),因此,作弊者為了掩蓋作弊的痕跡,會(huì)利用注入方式與上述解碼規(guī)則結(jié)合,產(chǎn)生更復(fù)雜的腳本代碼,實(shí)現(xiàn)作弊的目的.另外通過腳本還可以進(jìn)行HTML元素及事件注入[3].下面使用腳本的例子可以實(shí)現(xiàn)通過注入方式進(jìn)行重定向.
所述腳本注入產(chǎn)生的代碼如下所示,執(zhí)行該腳本代碼后頁面被重定向到http://spampage.com頁面.
2.6 使用Referrer屬性
Referrer屬性可以得到載入當(dāng)前文檔的URL(即鏈接并打開當(dāng)前文檔的URL).語法格式為:document.referrer,如果當(dāng)前文檔不是通過超級(jí)鏈接訪問的,則為空(null)[4].利用下面的代碼可以將不同來源的訪問重定向到不同的頁面.
自動(dòng)跳轉(zhuǎn)技術(shù)可以用來實(shí)現(xiàn)當(dāng)頁面出現(xiàn)故障,或者域名更改等意外情況下的替換和更正等良性引導(dǎo)的功能,但是有些人“綁架”用戶,讓訪問者強(qiáng)制訪問指定頁面,獲得點(diǎn)擊量,實(shí)現(xiàn)“作弊”的最終目的,這種做法只會(huì)引起訪問用戶的反感,也嚴(yán)重影響了互聯(lián)網(wǎng)的訪問規(guī)則,破壞了互聯(lián)網(wǎng)秩序,因此,研究如何防止作弊者利用JavaScript重定向跳轉(zhuǎn)技術(shù)進(jìn)行作弊是十分重要的.
〔1〕中國互聯(lián)網(wǎng)信息中心.第24次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/OL].http://www.cnnic. net.cn/uploadfiles/doc/2009/7/16/125040.doc.
〔2〕Z.GySngyi and H,Garcia Molina,Web spam taxonomy.In Proceedings Of the 1st International Workshop on Adversarial Information Retrieval on the Web(mgWeb),2005:1-5.
〔3〕Zhuge J,Holz T,Song C,et al.Studying malicious websites Andthe underground economy on the Chinese Web [C]∥Proc of 7th Workshop on the Economics of Information Security(WEIS'08),Hanover,NH,2008.
〔4〕ChellapillaK,MaykovA.A taxonomy of javascript redirection Spam.In AIR Web'07: Proceedings of the 3rd international Workshop on Adversarial information retrieval on the web New York,NY,USA,2007:2-8.
〔5〕王暾.基于JavaScript的網(wǎng)頁重定向作弊技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2012(3).
TP391.13
A
1673-260X(2017)03-0028-03
2016-11-23
2015安徽省精品課程軟件工程專業(yè)綜合試點(diǎn)改革 (2015zy095);2014安徽省級(jí)質(zhì)量工程項(xiàng)目卓越技能型動(dòng)漫設(shè)計(jì)師教育培養(yǎng)計(jì)劃(2014zjjh058);2016淮北職業(yè)技術(shù)學(xué)院院級(jí)質(zhì)量工程項(xiàng)目多媒體課件在計(jì)算機(jī)類制作實(shí)訓(xùn)中的教學(xué)應(yīng)用研究(2016jyxm_09)
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2017年6期