2009年7月17日 星期五

保護你的e-mail地址不被機器人爬蟲收錄!

某日,當我打開學校的信箱時,發現居然有廣告信跑進來了>< 學校提供的信箱我只貼在實驗室的網站上過,沒想到已經玷污...不,是被收錄進廣告商的資料庫了(無言)= = 所以決定要與廣告商來宣戰!!

在此之前我常看到簡單的保護e-mail的作法就是把@打成at、.換成dot,目的就是為了破壞原有e-mail的規則,讓爬蟲判讀不出來這是一個有效的電子郵件,簡單易懂,卻對真的想要寫信給你的人造成困擾。

因此,以下就分析幾種躲避爬蟲爬出e-mail的方法~
##ReadMore##
首先,對於顯示在網頁上的部分,出現完整的E-Mail地址絕對是不可行,這是最容易被收錄的情況,爬蟲甚至不用拜訪你的網頁,直接在Google找資料就可以了,因此以下就逐步分析有效的對付爬蟲的方法:

用圖片來顯示E-Mail是有效的方法之一,在爬蟲不具備文字辨識下,能夠有效的防止被收錄,因為爬蟲將其視為一張圖片。


如上例,是不是看起來就像一般文字呢?facebook也是利用此方法保護信箱的位置,不過大家應該也發現問題了,這個方法麻煩的地方在於,想要寫信給你的人還得要自己把e-mail打進收件者的地方,打錯就麻煩了~.~

因此在網路上出現一種利用JavaScript的方法,來顯示信箱,一個簡單的範例如下:

<script type="text/javascript">
document.write('username@' + 'example.com');
</script>

將這段程式碼放在網頁上,最後的結果就是顯示出:

username@example.com

這樣一來就可以讓使用者複製了,而且對於爬蟲來說,他看到的是那段程式碼,因此並不符合他想收錄的信箱格式,事情真有那樣簡單?!

天不從人願,事實並非如此,事實上,只要爬蟲觀察DOM,就可以輕易的找出完整的信箱地址,用任何瀏覽器提供的開發者工具就能輕易的找出來,如下圖:


因此利用JavaScript的document.write方法並不妥當,所以利用圖片顯示是比較保險的方法,不過為了讓想要寫信給你的人方便,通常我們會用一個連結,並配合mailto的語法,讓你點email時,直接呼叫寫信的軟體,並自動填上收件人,一個簡單的例子如下:

<a href="mailto:username@example.com"><img src="mail.gif" border="0"></a>

或者因為有連結,我們也可以使用非email的文字替代連結,如下:

<a href="mailto:username@example.com">寫信給我</a>

然而,相同的問題又出現了,爬蟲只要觀察原始碼,就能輕易找出藏在href參數中的值就是信箱位置,而且這次還多了mailto這個關鍵字可以判斷,更不會跟一般的連結搞混。

有鑑於此,我們就不要讓信箱出現在href參數當中,我們利用JavaScript,讓連結的位置在當點下這個連結時才動態產生,動態的目的是因為爬蟲通常只觀察載入完畢後的DOM,只有人類才會有動作去點這個連結,而DOM也就在點擊時才發生改變,一個簡單的範例如下:

HTML:
<a href="#" onClick="m('username','example.com');">寫信給我</a>

JavaScript:
<script language="JavaScript">
function m(a,b){
var x="@";
window.location.replace("m"+'a'+"i"+'l'+"t"+'o'+":"+a+x+b);
}
</script>

你可以看的出來,href當中已經沒有任何有意義的值,我們利用onClick,讓當點下此連結時,呼叫m涵式,再利用location的方式,連結至mailto。你也看的出來,我們故意將mailto每個字母分離,並用單、雙引號來混淆視聽,甚至連涵式的名字我們都故意用m一個字母表示,絕不出現mail或sendmail之類的關鍵字。有人也許會有疑問,在呼叫m時所傳入的參數上就有除了@之外的usename與example.com!沒錯,但是對於爬蟲來說,這個字串並沒有很明顯的特徵清楚的告訴爬蟲,這是一個去掉@的信箱位置。

不過對於爬蟲,他也許會判別出所有的a標籤,並全部都去點點看,假設是普通連結,則忽略,假如是呼叫了系統預設的郵件軟體,則判定是信箱位置。這是一個很棘手的問題,對於這種『都點點看、連連看』的爬蟲,我們可以偽裝這個超連結來躲避,一個簡單的範例如下:

HTML:
<span style="cursor:pointer;" onClick="m('username','example.com');">寫信給我</span>

JavaScript:
同前例

看出來了嗎?我們避免使用a這個HTML標籤,而使用span這個標籤來代替他,並用CSS讓他看起來像連結,像是滑鼠移上去變成手指,你也可以為他加上底線跟顏色,讓他看起來更像連結。

廣告信一直以來就是一個頭痛的問題,網路上絕對沒有一種有效的方法能夠保護好信箱的位置,因為爬蟲只要換成人,什麼信箱位置都無所遁形,因此我們也只能盡量的保護我們的信箱位置,不隨便洩漏信箱,或是申請一個信箱專門對外公開,過一段時間拋棄,而真正在使用的信箱只給身旁的親友才是比較上策的方法。

歡迎提出更有效或是改進的方法!

2009年5月16日 星期六

查IP!!

用IP查地區
只能標出你所在的地區
我試過用其他屬於臺南的IP下去測
都是同一個點

實在是夠神奇了

2009年5月11日 星期一

http://www.ajaxrain.com/

http://www.ajaxrain.com/

很多AJAX套件的收集庫
很棒喔!

2009年5月3日 星期日

關於SEO的文章

到底什麼是SEO http://seo-worker.blogspot.com/2007/06/seo_28.html

SEO的第一課-硬體策略與網址選定 http://seo-worker.blogspot.com/2007/07/seo.html

SEO第二課-關鍵字策略 http://seo-worker.blogspot.com/2007/07/seo_05.html

SEO的第三課-搜尋引擎的運作分析 http://seo-worker.blogspot.com/2007/07/seo_17.html

SEO的第四課-搜尋引擎的規則 http://seo-worker.blogspot.com/2007/11/seo.html




資料來源:小王子的浮世隨筆Ⅱ.0 http://seo-worker.blogspot.com/

免費圖示、免費資源

http://www.freegroup.org/category/free-icons/

網頁素材啦!
有需要的人把他加進去我的最愛吧~

好用的Javascript日曆

突然看到的
有興趣的人可以用看看
試用:http://www.pavilion-gift.com.tw/test/test.htm
作者blog:http://kelunyang.wordpress.com/2009/05/01/javascript%E6%97%A5%E6%9B%86/

開新資料夾


Step and Go!
(鏡音鈴)

現在的XP已經把點兩下資料夾這個開啟資料夾的動作
從早期的在另外顯示一個視窗顯示資料夾內容
改成顯示在同一個視窗中
可是如果想在另外一個視窗顯示開啟後資料夾中的內容該怎麼辦呢?
##ReadMore##
其實方法很簡單,只要在點兩下資料夾前按住Ctrl後再點資料夾兩下
就會在新的視窗中開啟
對於要比對兩個資料夾內容或是複製檔案時
有不錯的效果



niconico版

2009年5月1日 星期五

[勸自殺]FireFox 3.5 beta 4

這一版速度真的明顯變快
有虛擬機器的不妨嚐鮮一下
(據說發佈又要延期啦~原本預計五月釋出的說)
http://www.mozilla.com/en-US/firefox/all-beta.html

p.s.本人已經有裝,並非陷害文...雖然真的有風險>///<

2009年4月30日 星期四

電腦玩物站長對於Remember The Milk的心得

n篇前有介紹Remember The Milk
一個線上代辦事項的網站服務
以下是電腦玩物站長對於Remember The Milk的心得
有興趣的可以看看
http://playpcesor.blogspot.com/2009/04/remember-milk.html

2009年4月27日 星期一

用GHOST11做備份的小技巧

想要用GHOST11做備份,
但是卻不知道怎麼設定多大容量做一個檔案嗎?
(感覺句子聽起來不是很順...囧)

只要在執行前下指令
" ghost11 -split=4000 "
則備份時即以4000MB為單位做一個檔案
這樣就可以把備份的檔案燒進DVD中了~

製作ico圖檔的線上網站

http://www.favicon.cc/

這是一個線上製作ico圖檔的網站
如果要在你的網站上顯示獨特的ico圖示
請在<head></head>之間加上
<link rel="shortcut icon" href="favicon.ico" />
(檔名跟路徑請自行修改href部份)

JQuery的教學網站

http://webdesign.enjoyitsimply.com/jquery/
jQuery 是一套物件導向式簡潔輕量級的 JavaScript Library。透過 jQuery 你可以用最精簡少量的程式碼來輕鬆達到跨瀏覽器 DOM 操作、事件處理、設計頁面元素動態效果、AJAX 互動等。

有興趣的來學學看吧!

2009年4月26日 星期日

小關關的豆知識


ライン
(初音未來)

哪個首都離赤道最近?
##ReadMore##
基多(Quito),基多是南美洲國家厄瓜多的首都,位於該國北部,離赤道僅24公里。因地處高原,海拔高度2852公尺,是僅次於玻利維亞拉巴斯的世界第二高首都,一年中月平均氣溫都在10℃左右,年平均溫差只有4℃,四季如春。


檢視較大的地圖
基多(Quito)地理位置

2009年4月25日 星期六

快速關機術


eight hundred
(初音未來)

電源鍵自從變成無段式之後,他按一下的功能已經被系統接管~
##ReadMore##
在XP控制台中的電源選項的進階中
對於電源按鈕按一下可以改變其定義的動作
預設的動作就是進行關機程序


因此在XP中要快速關機只需要按一下電源鍵即可!
簡單又快速~


niconico版

2009年4月24日 星期五

工商服務

http://www.momokids.com.tw/active/mother/09mother.html

啾咪 >.0

2009年4月23日 星期四

網站分享

因為在趕論文,所以今天分享我常在看的網站

##ReadMore##

http://www.2cm.com.tw/

這一個網站在介紹通訊界的東西,對與通訊界有興趣的人可以看看

我會看是因為我是通訊界得一顆星XDDD

另外....linux kernel要脫稿了....

好用的免費貼圖空間

http://photobucket.com/

Photobucket除了可以上傳圖片,上傳後還可以做編輯,共有1G的容量。

使用起來很方便簡單,可以一次上傳多張圖片,還可以將圖片分類,像一本一本的相簿一樣。

當中途的時候都是靠他幫忙,上傳狗狗的照片的....

PS1.為什麼我與南都連不上,難道他真的被PTT擊垮了嗎?

ubuntu 9.04 發佈!

身為ubuntu的愛好者
一定要宣傳這個消息
配合Ext4檔案系統開機可於20秒內開機完成
來試看看吧~
http://www.ubuntu-tw.org/modules/tinyd0/index.php?id=7

昇陽發表MySQL 5.4預覽版

MySQL 5.4預覽版支援Linux及Solaris 10的64位元版本,預計在今年出爐的正式版將會擴大支援其他軟、硬體平台。

在被甲骨文宣布併購昇陽的同時,昇陽於周二(4/22)的MySQL年度會議上發表開放源碼資料庫MySQL 5.4預覽版供使用者下載,該版本提昇了延展性,其回應速度的改善最高可達90%。

轉載自自由軟體技術交流網

哇:90%...會不會太扯...

十大人物推薦 一生必讀的100本書

點此連結
轉載於天下雜誌