<strike id="bfd19"><dl id="bfd19"><ruby id="bfd19"></ruby></dl></strike><span id="bfd19"></span>
<span id="bfd19"><video id="bfd19"></video></span>
<strike id="bfd19"><video id="bfd19"><ruby id="bfd19"></ruby></video></strike>
<strike id="bfd19"></strike><th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span> <strike id="bfd19"></strike>
<strike id="bfd19"><dl id="bfd19"></dl></strike>
<th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span>
<menuitem id="bfd19"><menuitem id="bfd19"><ruby id="bfd19"></ruby></menuitem></menuitem>
返回舊版| 微信建站| 建站之家論壇| 我要建站 | 建站學習 | 加入收藏
建站經驗當前位置:首頁 > 建站經驗 > 正文

網站被惡意鏡像怎么辦 一段代碼輕松搞定(全面版)

發布時間:2018-09-15 17:58:11   來源:   點擊:
有時候你會發現,你在搜索引擎輸入網站名稱的時候,出來的網站信息是你們的,但是域名卻是一個陌生的,這種情況可以基本確定網站被鏡像了,那么究竟什么叫網站被鏡像?

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

網站被鏡像的危害

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

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

如何知道自己的網站是否被鏡像

復制自己網站的完整標題(PS:查看自己站點首頁源碼),然后在谷歌和百度等搜索引擎里搜索,如搜索:網站建設,如果有其他網站的網站標題、描述及網站內容跟你的一樣,只有域名不一樣,那就是被鏡像了。

如何處理網站被鏡像

這類鏡像看似一個完整的站點,其實上是每次用戶訪問鏡像站點,程序就會來正版的站點查詢數據,并修改相關鏈接然后呈獻給用戶。實質上還是在讀取原站的數據。以下龍笑天下就列舉幾種解決方法,大家自行取舍使用!

方法 1:查清鏡像網站的主機 Ip,通過禁止 Ip 來解決

本教程基于 WordPress 程序,其他系統請自測!

1、獲取鏡像服務器 ip。注:這個 IP 可能不是 ping 到他域名的 IP

復制如下代碼,新建一個 php 文件,并命名為“ip.php”上傳到你的網站根目錄。
  1. <?php 
  2. $file = "ip.txt"//保存的文件名 
  3. $ip = $_SERVER['REMOTE_ADDR']; 
  4. $handle = fopen($file, 'a'); 
  5. fwrite($handle, "IP Address:"); 
  6. fwrite($handle, "$ip"); 
  7. fwrite($handle, "\n"); 
  8. fclose($handele); 
  9. ?> 
2、然后訪問你網站的鏡像站點,在地址后面加.../ip.php,然后你就會在網站根目錄找到 ip.txt 文件了,打開復制里面的 ip 地址。

3、然后打開你的.htaccess 文件,在后面加上如下代碼(自行修改為剛剛獲得的 ip)
  1. #添加IP黑名單 
  2. Order Deny,Allow 
  3. Deny from 162.158.72.179 
當然,如果你使用 CDN,可以直接在 CDN 后臺添加 ip 黑名單

這個時候你再刷新一下鏡像站點,是不是已經 403 報錯了呢?這個時候已經解決了這個鏡像站點,然后就等待蜘蛛將其解決掉吧。

此方法的缺點就是如果鏡像網站更換了 ip,那我們的屏蔽就失敗了

方法 2:JS 來防護

在頭部標簽:取自 @boke112 導航
<head></head>
里加上下面的 JS 代碼:
  1. <script type="text/javascript"
  2. if (document.location.host != "www.wxv.tw") { 
  3. location.href = location.href.replace(document.location.host,'www.wxv.tw'); 
  4. </script> 
或加上以下的 JS 代碼:
  1. <script type="text/javascript"
  2. rthost = window.location.host; 
  3. if (rthost != "www.wxv.tw") { 
  4. top.location.href = "http://www.wxv.tw"
  5. </script> 

注意:將上面代碼中的www.wxv.tw改為你網站的首頁主地址,如果我上面填寫的不是我網站的主地址 www.wxv.tw,而是 pweb.com 的話,就會導致網站一直刷新!

注:經過本站測試,如果鏡像站屏蔽了 JS,則該方法失效。所以,最好把方法 2 和方法 3 結合使用!
(注意:以上方法感覺并不嚴嚴謹,js代碼需要稍作修改,改成如下:)

  1. <script type="text/javascript">  
  2. rthost = window.location.host;  
  3. if (!rthost.indexOf("pweb123.com")) { //改成這樣 
  4. top.location.href = "http://www.wxv.tw";  
  5. }  
  6. </script>  
方法 3:Js 被屏蔽后防止鏡像的方法

將以下代碼加到網站的 header.php 中:代碼取自 @boke112
  1. <div style="display:none;"
  2. <script>proxy2016 = false;</script> 
  3. <img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.host="http://www.wxv.tw";}},3000);'
  4. </div> 
有些網站會屏蔽掉 JS 代碼(如下面的代碼) :
  1. <script>...</script> 
所以 <script>proxy2016 = false;</script> 代碼將被過濾掉,img 的 onerror 設置超時時間 3000 毫秒,將運行函數部分,檢測是否還存在 proxy2016 字符,如果沒有找到就會將主機的 URL 改為 www.wxv.tw;為了安全起見,將 js 部分可以使用 js 代碼混淆(本站“JS 代碼混淆” 工具 或 站長之家 JS 混淆工具)。


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

方法 4:借助 Img 的 Onerror 事件

代碼如下:
  1. <div style="display:none;"
  2. <script>tx = false;</script> 
  3. <img src="" onerror='setTimeout(function(){if(typeof(tx)=="undefined"){window.location.href="http://pw"+"eb123"+".com";}},3000);'
  4. </div> 
為了防止域名被替換,我故意做了拆分,這是一個seTimeout函數 沒3秒執行一次
這種方法,可以有效防止js或者script代碼被過濾,算是比較有效的一種方法。

方法 5:通過禁止某些 User Agent 特征來防
①、PHP 通用版:

將下面的代碼貼到網站入口文件 index.php 中的第一個 <?php之后即可:
  1. //防止惡意HTTP_USER_AGENT采集 
  2. $ua = $_SERVER['HTTP_USER_AGENT']; 
  3. $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');  
  4. if(!$ua) { 
  5. header("Content-type: text/html; charset=utf-8"); 
  6.     die('請勿采集本站,采集者木有小JJ'); 
  7. }else
  8.     foreach($now_ua as $value ) 
  9.     if(eregi($value,$ua)) { 
  10.     header("Content-type: text/html; charset=utf-8"); 
  11.     die('請勿采集本站,采集者木有小JJ!'); 
  12.     } 
②、Wordpress 適用版

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

將下面的代碼貼到 functions.php 中的最后一個 ?>之前即可:
 
  1. //防止惡意HTTP_USER_AGENT采集 
  2. add_action('wp_head''lxtx_deny_mirrored_request', 0); 
  3. function lxtx_deny_mirrored_request() 
  4. $ua = $_SERVER['HTTP_USER_AGENT']; 
  5. $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');  
  6. if(!$ua) { 
  7. header("Content-type: text/html; charset=utf-8"); 
  8. wp_die('請勿采集本站,采集者木有小JJ!'); 
  9. }else
  10.     foreach($now_ua as $value ) 
  11.     if(eregi($value,$ua)) { 
  12.     header("Content-type: text/html; charset=utf-8"); 
  13.     wp_die('請勿采集本站,采集者木有小JJ!'); 
  14.     } 
方法6:直接在服務端設置防盜鏈
(1)appach下的防盜鏈設置:在根目錄下創建.htaccess,里邊添加內容:
  1. RewriteEngine On 
  2.   RewriteCond %{HTTP_REFERER} !^http://(.+.)?pweb123.com/ [NC] 
  3.   RewriteCond %{HTTP_REFERER} !^$ 
  4.   RewriteCond %{HTTP_REFERER} !baidu.com [NC] 
  5.   RewriteCond %{HTTP_REFERER} !google.com [NC] 
  6.   RewriteCond %{HTTP_REFERER} !so.com [NC] 
  7.   RewriteCond %{HTTP_REFERER} !qq.com [NC] 
  8.   RewriteCond %{HTTP_REFERER} !weibo.com [NC] 
  9.   RewriteCond %{HTTP_REFERER} !sm.cn [NC] 
  10.   RewriteCond %{HTTP_REFERER} !sogou.com [NC] 
  11.   RewriteRule .*.(jpe?g|gif|bmp|png|css|js)$ /statics/images/nopic.gif [R,NC,L] 
RewriteCond %{HTTP_REFERER} !baidu.com代表放行域名,請放行自己域名以及搜索引擎的域名,可以根據自己需要添加,最下邊是指防止盜鏈的后綴,一般也就這些了。

(2)nginx防止盜鏈方法
  1. #SECURITY-START 防盜鏈配置 
  2.    location  ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ 
  3.    { 
  4.        expires      30d; 
  5.        access_log off; 
  6.        valid_referers www.wxv.tw m.pweb123.com pweb123.com; 
  7.        if ($invalid_referer){ 
  8.           rewrite ^/ http://pweb123.com/404/index.html; 
  9.           #return 404; 
  10.        } 
  11.    } 
如果原來有:
  1. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
  2.  expires      30d; 
請找到,并且替換最上面的代碼

(3)CDN的方式,現在的免費的cdn都可以設置防盜鏈已經添加ip黑名單的功能,效果還不錯,如果不會代碼,可以試試這個!



版權所有:鄭州騰石網絡科技有限公司 備案信息:豫ICP備18019117號
站長QQ:2863868475 業務合作咨詢:15137100750(同微信)
本站所有投放的廣告是有其他網站提供,不代表本站立場,同時網站首頁廣告位對外出租詳情咨詢本站站長!同時歡迎廣大站長加入個人建站團隊
  • 建站客服
  • CMS仿站
  • CMS學習
  • 技術交流群:336572814
百乐彩是什么意思
<strike id="bfd19"><dl id="bfd19"><ruby id="bfd19"></ruby></dl></strike><span id="bfd19"></span>
<span id="bfd19"><video id="bfd19"></video></span>
<strike id="bfd19"><video id="bfd19"><ruby id="bfd19"></ruby></video></strike>
<strike id="bfd19"></strike><th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span> <strike id="bfd19"></strike>
<strike id="bfd19"><dl id="bfd19"></dl></strike>
<th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span>
<menuitem id="bfd19"><menuitem id="bfd19"><ruby id="bfd19"></ruby></menuitem></menuitem>
<strike id="bfd19"><dl id="bfd19"><ruby id="bfd19"></ruby></dl></strike><span id="bfd19"></span>
<span id="bfd19"><video id="bfd19"></video></span>
<strike id="bfd19"><video id="bfd19"><ruby id="bfd19"></ruby></video></strike>
<strike id="bfd19"></strike><th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span> <strike id="bfd19"></strike>
<strike id="bfd19"><dl id="bfd19"></dl></strike>
<th id="bfd19"><video id="bfd19"></video></th>
<span id="bfd19"></span>
<menuitem id="bfd19"><menuitem id="bfd19"><ruby id="bfd19"></ruby></menuitem></menuitem>