Jan 092011
 

其實消除Godaddy免費空間的廣告在網絡上已經有很多方法。我之所以拿出來說,那是因爲有些方法需要更新了。下面來詳細分析。
(註明:本文所採用的IE版本是IE8。IE6、IE7可能会有所不同。)

消除Godaddy免費空間的廣告從技術上來講不成問題。問題是,這樣做有風險。

先來看看Godaddy的廣告代碼。Godaddy會在網頁末尾加入如下一段代碼:

</iframe></noscript></object></layer></span></div></table></body></html><!-- adsok -->
<script language='javascript' src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'></script>

網絡上目前比較有效的一种辦法是使用CSS隱藏,可以在網頁末尾加入以下代碼:

<style>#conash3D0 {display:none;}</style>

或者在CSS中直接加入

#conash3D0{display:none;}

這時候可能就危險了,萬一被查出來會被封。於是就有一個相對“安全”的做法,按照訪客的瀏覽器語言區別對待。例如以下代碼針對大陸中文瀏覽器用戶有效,屏蔽廣告,而用英文瀏覽器會看到廣告

<?php
$lang = explode(',',strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
if($lang[0]=='zh-cn') { echo '<style>#conash3D0 {display:none;}</style>'; }
unset($lang);
?>

可惜這只是隱藏起來,Godaddy的廣告是用JS產生的,它依然存在。於是就有了更“完美”的做法,直接屏蔽廣告的JS代碼,即在網頁代碼的末尾加入<noscript>。但很可惜的是,此法現已失效。現在Godaddy的廣告代碼已經包含了</noscript>,即使想用其它HTML代碼去搗亂廣告基本上都是無效的,Gadaddy已經在末尾包含了</html>,此法无效。有人說可以加入<script>標記使得廣告代碼無法執行,但這樣做有個不好的地方,瀏覽器會顯示網頁有錯誤。

其實有一個更方便做法,只是大家沒注意到而已。那是甚麼呢?再來看看Godaddy的廣告代碼:

</iframe></noscript></object></layer></span></div></table></body></html><!-- adsok -->
<script language='javascript' src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'></script>

發現了嗎?裏面包含一個HTML註釋:

<!-- adsok -->

這就是關鍵!想想HTML註釋有哪些特點?可以跨行,中間可以包含多個<!--,但遇到一个-->立即完成註釋。這就是我們可以利用的地方。按照這個思路,可以在網頁末尾加入這樣的代碼:

<noscript>
<!--

好了,現在Godaddy的廣告代碼已經徹底不能運行。如果想安全點,可以配合上述語言判斷的做法:

<?php
$lang = explode(',',strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
if($lang[0]=='zh-cn') { echo '<noscript>'; }
unset($lang);
?>
<!--

我測試過,此法對IE、Opera、Safari有效,但對Firefox、Chrome無效。這時候要使出終極方法了。不知道有無人留意到一點,如果HTML標記<style>不封閉,那麼後邊的内容一片空白。說到底,其實就是未能執行和解析。利用此特性,可以將代碼改爲:

<?php
$lang = explode(',',strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
if($lang[0]=='zh-cn') { echo '<style>'; }
unset($lang);
?>
<!--

經測試,所有瀏覽器全部Pass,廣告不見了!假如想要非常穩妥,可以寫成這樣:

<?php
$lang = explode(',',strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
if($lang[0]=='zh-cn') { echo '<style>#conash3D0 {display:none;}</style><noscript><style>'; }
unset($lang);
?>
<!--

如果想要面對臺灣中文用戶隱藏廣告,可以將zh-cn改爲zh-tw。想令所有中文用戶都看不到代碼,那就

<?php
$lang = explode(',',strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
if($lang[0]=='zh-cn' || $lang[0]=='zh-tw' || $lang[0]=='zh-hk' || $lang[0]=='zh-mo' || $lang[0]=='zh-sg' || $lang[0]=='zh') { echo '<style>#conash3D0 {display:none;}</style><noscript><style>'; }
unset($lang);
?>
<!--

Godaddy應該不會有人用中文瀏覽器吧。

不過,如果你確定要這麼做,隱藏廣告,風險自擔

其實,Godaddy完全可以“破解”這一方法,只需要在他們的</iframe>前邊加入一段註釋就能行了。

  One Response to “消除Godaddy免費空間廣告的方法”

  1. 我就是這篇文章進來的。

Sorry, the comment form is closed at this time.