1. 程式人生 > >網站被惡意映象十種解決辦法2018最新版

網站被惡意映象十種解決辦法2018最新版

怎麼查網站是否被映象? 1.使用谷歌搜尋來搜尋你的網站內容,比如每個帖子都會出現的電話或者網址; 2.把網站內的文章標題去搜索,多試幾篇,新老內容都試下(每個字都不落下); 比如我的網站一篇文章的標題是【昆明儒虎廣告公司經營範圍_昆明標識標牌_昆明廣告製作_昆明廣告公司—昆明儒虎廣告公司】全部複製到瀏覽器進行搜尋,結果就偶爾出現一些映象站。

有時候你會發現,你在搜尋引擎輸入網站名稱的時候,出來的網站資訊是你們的,但是域名卻是一個陌生的,這種情況可以基本確定網站被映象了,那麼究竟什麼叫網站被映象?

惡意映象,也叫惡意克隆,惡意解析,是指有人通過域名 A 記錄直接解析別人 IP 地址,從而得到一個在訪問者眼中完全相同網站的過程。其工作原理基本上是這樣子的:有使用者訪問映象站點時,程式就會來正版的站點查詢資料,並修改相關連結然後呈獻給使用者,實質上還是在讀取原站的資料。嚴謹一點的解釋:通過複製整個網站或部分網頁內容並分配以不同域名和伺服器,以此欺騙搜尋引擎對同一站點或同一頁面進行多次索引的行為 。

網站被映象的危害

通俗的講,惡意映象者意圖利用自己有一定權重的域名進行威壓,通過某些手段複製了你的站點,除了域名不一樣之外,其他內容一模一樣,使用者或許根本無法分辨。甚至對於一些新的站點,搜尋引擎都會迷惑到底哪個是真的站點,那麼就有可能正牌的網站被刪除收錄,而盜版的卻被搜尋引擎青睞。

雖然目前我們還不知道惡意映象我們的網站到底有什麼意圖,但肯定對我們沒什麼好處,如果他這個域名有點什麼不健康的資訊,那麼我們被映象的站點有可能被汙染掉,所以還是要警惕這個現象。

網站被映象或者採集十種解決辦法: 終極辦法就是在搜尋結果點選舉報,列上對方採集映象你的證據,小編就是通過舉報打死了一大批採集映象站,但是百度公司那些懶散的豬速度太慢,而且不是一次性遮蔽整站,刪除收錄以後過一段時間又出來一些收錄,太噁心!   這類映象看似一個完整的站點,其實上是每次使用者訪問映象站點,程式就會來正版的站點查詢資料,並修改相關連結然後呈獻給使用者。實質上還是在讀取原站的資料。以下昆明儒虎廣告公司小編就列舉幾種解決方法,大家自行取捨使用!

方法 1:查清映象網站的主機 Ip,通過禁止 Ip 來解決      最好就是自己分析一下網站訪問日誌,然後把所有可疑的ip在.htaccess 檔案全部遮蔽。

本教程基於 WordPress 程式,其他系統請自測!

1、獲取映象伺服器 ip。注:這個 IP 可能不是 ping 到他域名的 IP

複製如下程式碼,新建一個 php 檔案,並命名為“ip.php”上傳到你的網站根目錄。

<?php
$file = "ip.txt"; //儲存的檔名
$ip = $_SERVER['REMOTE_ADDR'];
$handle = fopen($file, 'a');
fwrite($handle, "IP Address:");
fwrite($handle, "$ip");
fwrite($handle, "\n");
fclose($handele);
?>

2、然後訪問你網站的映象站點,在地址後面加…/ip.php,然後你就會在網站根目錄找到 ip.txt 檔案了,打開復制裡面的 ip 地址。

3、然後開啟你的.htaccess 檔案,在後面加上如下程式碼(自行修改為剛剛獲得的 ip)

#新增IP黑名單
Order Deny,Allow
Deny from 162.158.72.179

當然,如果你使用 CDN,可以直接在 CDN 後臺新增 ip 黑名單

這個時候你再重新整理一下映象站點,是不是已經 403 報錯了呢?這個時候已經解決了這個映象站點,然後就等待蜘蛛將其解決掉吧。

此方法的缺點就是如果映象網站更換了 ip,那我們的遮蔽就失敗了

方法 2:JS 來防護 在頭部標籤:

<head></head>

里加上下面的 JS 程式碼:

<script type="text/javascript">
if (document.location.host != "www.ruhoo.cn") {
location.href = location.href.replace(document.location.host,'www.ruhoo.cn');
}
</script>

或加上以下的 JS 程式碼:

<script type="text/javascript">
rthost = window.location.host;
if (rthost != "www.ruhoo.cn") {
top.location.href = "https://www.ruhoo.cn";
}
</script>

注意:將上面程式碼中的www.ruhoo.cn改為你網站的首頁主地址,如果我上面填寫的不是我網站的主地址 www.ruhoo.cn,而是 ruhoo.cn的話,就會導致網站一直重新整理!

注:經過本站測試,如果映象站遮蔽了 JS,則該方法失效。所以,最好把方法 2 和方法 3 結合使用!

方法 3:Js 被遮蔽後防止映象的方法 將以下程式碼加到網站的 header.php 中:

<div style="display:none;">
<script>proxy2016 = false;</script>
<img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.host="www.ruhoo.cn";}},3000);'>
</div>

有些網站會遮蔽掉 JS 程式碼(如下面的程式碼) :

<script>...</script>

所以 <script>proxy2016 = false;</script> 程式碼將被過濾掉,img 的 onerror 設定超時時間 3000 毫秒,將執行函式部分,檢測是否還存在 proxy2016 字元,如果沒有找到就會將主機的 URL 改為 www.ruhoo.cn;為了安全起見,將 js 部分可以使用 js 程式碼混淆 站長之家 JS 混淆工具

本站的混淆結果如下:

<div style="display:none;">
<script>proxy2016 = false;</script>
<img src=" " onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x6f\x73\x74"]="\x77\x77\x77\x2e\x69\x6c\x78\x74\x78\x2e\x63\x6f\x6d";}},3000);'>
</div>

經過我的測試,此程式碼在 Chrome、IE11 和 360 極速瀏覽器上均有效,會跳轉到源站的原文章頁!在 Firefox 上則無效果,映象的文章頁並不會跳轉到原站… 將程式碼中 img 標籤的 src 引用地址改為空格或無效的圖片地址後,在 Firefox 上也起作用了!

方法 4:藉助 Img 的 Onerror 事件 20161119 更新(增加搜狗快照支援):此方法使用了後,會導致百度快照、谷歌快照、必應快照和搜狗快照等跳到 404 頁面(360 搜尋快照則不會~),奈何不知怎麼弄,2016-11-10 再次經過張戈的指導,將原始碼中的:

if( str1!=str3 )改為 :if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="cncc.bingj.com" && str3!="snapshot.sogoucdn.com" )。估計要等快照更新時才能知道效果了!

從張戈那看到,這段程式碼會因為 onerror 死迴圈造成瀏覽網頁的電腦高負載(CPU 飆升),因此在程式碼 onerror 觸發事件中加入 onerror 清空機制,即加入this.onerror=null。 通過拆分域名連結與映象站比對,然後用 img 標籤 src 空值觸發 onerror 來執行 js 比對,比對失敗則跳轉回源站。

①、WordPress 專用版 程式碼如下:(複製貼上到主題的 functions.php 最後一個?>之前)

/**

  • 網站被惡意映象怎麼辦 一段程式碼輕鬆搞定
  • 最後更新時間:20181013 釋出時間:20160912
  • 出自:zhangge.net */ add_action(‘wp_footer’,‘lxtx_deny_mirrored_websites’); function lxtx_deny_mirrored_websites(){ $currentDomain = ‘www" + “.ilxtx.” + "com’; // KaTeX parse error: Can't use function '\'' in math mode at position 89: …rc=" " onerror=\̲'̲this.onerror=nu…currentDomain.’";str2=“docu”+“ment.loca”+“tion.host”;str3=eval(str2);if( str1!=str3 && str3!=“cache.baiducontent.com” && str3!=“webcache.googleusercontent.com” && str3!=“c.360webcache.com” && str3!=“cncc.bingj.com” && str3!=“snapshot.sogoucdn.com” ){ do_action = “loca” + “tion.” + “href = loca” + “tion.href” + “.rep” + “lace(docu” +“ment”+".loca"+“tion.ho”+“st,” + “”’ . $currentDomain .’"" + “)”;eval(do_action) }’ />’; } Ps:如果是丟到 wp_head,經過測試發現圖片放到 head,瀏覽器會自動進行錯誤調整,導致一些本來在 head 的元素被丟到了 body 當中,比如 style.css,估計網頁標準中 head 裡面就不應該放置圖片,所以移到了 footer 當中。

或者:

/**
龍笑天下網
*/
add_action('wp_footer','lxtx_deny_mirrored_websites');
function lxtx_deny_mirrored_websites(){
    $currentDomain = "www' + '.ilxtx.' + 'com";
    //  $currentDomain = "zhangge' + '.' + 'net";
    echo '<img style="display:none" src="nothing" onerror="this.onerror=null;var str1=\''.$currentDomain.'\';str2=\'docu\'+\'ment.loca\'+\'tion.host\';str3=eval(str2);if( str1!=str3 ){ do_action = \'loca\' + \'tion.\' + \'href = loca\' + \'tion.href\' + \'.rep\' + \'lace(docu\' +\'ment\'+\'.loca\'+\'tion.ho\'+\'st,\' + \'\\\'' . $currentDomain .'\\\'\' + \')\';eval(do_action) }" />';
}
或者:
/**
* 龍笑天下
*/
add_action('wp_footer','lxtx_kimsom_reverse_proxy_defense', 99);
function lxtx_kimsom_reverse_proxy_defense(){
    $currentDomain = '"www." + "ilxtx" + ".com"';
    echo '<img style="display:none" id="inlojv-rpd" src="nothing" data-url="'.home_url().'" onerror=\'this.onerror=null;var str0=document.getElementById("inlojv-rpd").attributes.getNamedItem("data-url").nodeValue;var ishttps="https:"==document.location.protocol?true:false;if(ishttps){var str1="https"+"://";}else{var str1="http"+"://";}var str2='.$currentDomain.';var str3=str1+str2;if( str0!=str3 ){location.href = location.href.replace(document.location.host,'. $currentDomain .');}\'/>';
}

Tips:如果想像“20160909 版本”一樣有個提示語,可將上面這段程式碼改為此

add_action('wp_footer','lxtx_kimsom_reverse_proxy_defense', 99);
function lxtx_kimsom_reverse_proxy_defense(){
    $currentDomain = '"www." + "ilxtx" + ".com"';
    echo '<img style="display:none" id="inlojv-rpd" src="nothing" data-url="'.home_url().'" onerror=\'this.onerror=null;var str0=document.getElementById("inlojv-rpd").attributes.getNamedItem("data-url").nodeValue;var ishttps="https:"==document.location.protocol?true:false;if(ishttps){var str1="https"+"://";}else{var str1="http"+"://";}var str2='.$currentDomain.';var str3=str1+str2;if( str0!=str3 ){alert("\u8b66\u544a\uff01\u68c0\u6d4b\u5230\u8be5\u7f51\u7ad9\u4e3a\u6076\u610f\u955c\u50cf\u7ad9\u70b9\uff0c\u5c06\u7acb\u5373\u4e3a\u60a8\u8df3\u8f6c\u5230\u5b98\u65b9\u7ad9\u70b9\uff01");location.href = location.href.replace(document.location.host,'. $currentDomain .');}\'/>';
}

20160909 版本

/**
* 網站被惡意映象怎麼辦 一段程式碼輕鬆搞定(全面版) - 昆明儒虎廣告公司
*/
add_action('wp_footer','lxtx_kimsom_reverse_proxy_defense');
function lxtx_kimsom_reverse_proxy_defense(){
$domain_arr = explode('//',home_url());
$domain = $domain_arr[1];
    echo '<img style="display:none" id="inlojv-rpd" src="nothing" data-url="'.home_url().'" onerror="this.onerror=null;var str0=document.getElementById(\'inlojv-rpd\').attributes.getNamedItem(\'data-url\').nodeValue;var ishttps=\'https:\'==document.location.protocol?true:false;if(ishttps){var str1=\'https\'+\'://\';}else{var str1=\'http\'+\'://\';}var str2=\''.$domain.'\';var str3=str1+str2;if( str0!=str3 ){alert(\'\u8b66\u544a\uff01\u68c0\u6d4b\u5230\u8be5\u7f51\u7ad9\u4e3a\u6076\u610f\u955c\u50cf\u7ad9\u70b9\uff0c\u5c06\u7acb\u5373\u4e3a\u60a8\u8df3\u8f6c\u5230\u5b98\u65b9\u7ad9\u70b9\uff01\');if (!!(window.attachEvent && !window.opera)){document.execCommand(\'stop\');}else{ window.stop();}var str4=\'wind\'+\'ow.loca\'+\'tion.rep\'+\'lace(str3)\';eval(str4);}">';
}

新增以上程式碼之後,再開啟映象站就會彈出提示:“警告!檢測到該網站為惡意映象站點,將立即為您跳轉到官方站點!”,並在關閉或確定此提示後直接跳轉到被映象的網站。經過本站測試,本方法防止網站被映象目前有效。

此方法在 IE11 上,會彈出提示框,但點選“確定”按鈕後,網頁並不會跳轉。。。Firefox、Chrome 和 360 極速瀏覽器上則沒此問題!

②、HTML 通用版

既然是利用 js 程式碼,那麼就能用到如何 html 頁面當中了。要不是為了可以放到 wp 的 functions.php,都沒必要寫成 php 的模式,直接用 html 程式碼即可:

<img style="display:none" src=" " onerror='this.onerror=null;var currentDomain="www." + "ruhoo" + ".cn"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="cncc.bingj.com" && str3!="snapshot.sogoucdn.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

將以上程式碼中的: var currentDomain="www." + "ruhoo" + ".cn"; 自行拆分成自己的域名,避免被映象程式碼替換掉,比如: var currentDomain=“zhangge.” + “net”;

然後將程式碼新增到網站的 <body> 之後即可(不建議放置到 <head> 裡面,具體原因上文已說明),這個版本適合任何網頁。

方法 5:通過禁止某些 User Agent 特徵來防

①、PHP 通用版:

將下面的程式碼貼到網站入口檔案 index.php 中的第一個 <?php之後即可:

//防止惡意HTTP_USER_AGENT採集
$ua = $_SERVER['HTTP_USER_AGENT'];
$now_ua = array('FeedDemon ','BOT/0.1 (BOT for JCE)','CrawlDaddy ','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy Library','oBot','jaunty','YandexBot','AhrefsBot','MJ12bot','WinHttp','EasouSpider','HttpClient','Microsoft URL Control','YYSpider','jaunty','Python-urllib','lightDeckReports Bot','PHP'); 
if(!$ua) {
header("Content-type: text/html; charset=utf-8");
    die('請勿採集本站,採集者木有小JJ!請正常訪問,並認準【昆明儒虎廣告公司】官方網址!');
}else{
    foreach($now_ua as $value )
    if(eregi($value,$ua)) {
    header("Content-type: text/html; charset=utf-8");
    die('請勿採集本站,採集者木有小JJ!請正常訪問,並認準【昆明儒虎廣告公司】官方網址!');
    }
}

②、Wordpress 適用版

如果使用上面的 php 版本,WordPress 每次更新就會需要操作 index.php,比較麻煩,因此弄個專版。

將下面的程式碼貼到 functions.php 中的最後一個 ?>之前即可:

/**
* 網站被惡意映象怎麼辦 一段程式碼輕鬆搞定(全面版) - 昆明儒虎廣告公司
* https://www.ilxtx.com/mirrored-website.html
* 出自:zhange.net
*/
//防止惡意HTTP_USER_AGENT採集
add_action('wp_head', 'lxtx_deny_mirrored_request', 0);
function lxtx_deny_mirrored_request()
{
$ua = $_SERVER['HTTP_USER_AGENT'];
$now_ua = array('FeedDemon ','BOT/0.1 (BOT for JCE)','CrawlDaddy ','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy Library','oBot','jaunty','YandexBot','AhrefsBot','MJ12bot','WinHttp','EasouSpider','HttpClient','Microsoft URL Control','YYSpider','jaunty','Python-urllib','lightDeckReports Bot','PHP'); 
if(!$ua) {
header("Content-type: text/html; charset=utf-8");
wp_die('請勿採集本站,採集者木有小JJ!請正常訪問,並認準【昆明儒虎廣告公司】官方網址!');
}else{
    foreach($now_ua as $value )
    if(eregi($value,$ua)) {
    header("Content-type: text/html; charset=utf-8");
    wp_die('請勿採集本站,採集者木有小JJ!請正常訪問,並認準【昆明儒虎廣告公司】官方網址!');
    }
}
}

經過測試,在 functions.php 中加入此程式碼後,開啟映象站後顯示“Internal Server Error”,強制重新整理後顯示我們設定好的提示文字“請勿採集本站,採集者木有小 JJ!請正常訪問,並認準【昆明儒虎廣告公司】官方網址!”。

本文轉自龍嘯天下網,還有一些忘記名字的博主,感謝他們為廣大網站主做出的貢獻。 昆明儒虎廣告公司是昆明一流的發光字門頭招牌廣告牌製作公司,歡迎雲南省內朋友定製廣告物料,同等質量低於省內99%同行,一站式服務讓您省心省事省力。聯絡電話百度一下【昆明儒虎廣告公司】你就知道。希望此文章能幫助到更多建站朋友,網站本來就越來越難做,嚴厲那些惡劣採集映象網站!!