2010-09-08 110 views
9

如何防止通過電子郵件蜘蛛從網頁收集的電子郵件?連接它們的mailto:是否會增加它們被拾取的可能性? URL編碼有用嗎?保護垃圾郵件機器人/網絡爬蟲的電子郵件地址

顯然,最好的應對措施是,只顯示電子郵件地址登錄的用戶,或者提供一個接觸的形式,而不是電子郵件地址。但就純粹的客戶端解決方案而言,有哪些可用的解決方案?

+0

對於解決方案部分,請看一下:http:// stackoverflow。com/questions/308772/what-are-some-ways-to-protect-emails-on-websites-from-spambots – 2010-09-08 01:24:35

+0

我不確定電子郵件混淆是否是一個很好的解決方案(如上面@yi的評論中提供的那樣。但@詹姆斯布萊克正確地使用電子郵件形式,並使用服務器端代碼來處理郵件。 – 2010-09-08 01:28:14

回答

1

多年以後,我創建了下面的jQuery爲不同的網站:

$(".email").each(function() { 
    $(this).html($(this).html().replace("...", "@").replace(/\.\.\./g, ".")); 
    $(this).attr("href", $(this).attr("href").replace("...", "@").replace(/\.\.\./g, ".")); 
}); 

電子郵件,然後寫成:

<a href="mailto:bob.smith...example...com" class="email">bob.smith...example...com</a> 

它並不完美,但它非常簡單,似乎阻撓了大多數電子郵件收割機。這種方法的好處是不使用JavaScript的人可能會弄清楚實際的電子郵件地址是什麼。


看看這個study on various email obfuscation methods

2

我傾向於避免mailto,因爲它使得它太容易讓人們收穫的電子郵件地址。

如果你要對你的網站的網頁接觸,然後只是有一個形式,當他們提交你的服務器端代碼,並使用適當的電子郵件地址。

如果你需要能夠有可用的其他人的地址,使用號碼,姓名,用戶名,一些方法來識別它們。

如果你只是有一個跨度很可能被拾起,即使你試着隱藏它,因爲這些程序可能會非常複雜,如發現電子郵件地址的電子郵件地址是他們是什麼。

與大多數的祕密,如果你不希望別人得到他們,不要把他們的網頁上。

+0

電子郵件在頁面上,在''s。除了刪除電子郵件地址,有什麼我可以減少他們被電子郵件蜘蛛拾取的可能性嗎? – Zaz 2010-09-08 01:38:07

5

大多數電子郵件蜘蛛沒有JavaScript解釋器,所以如果你真的需要mailto:你可以用JavaScript注入...只是確保該地址在JavaScript模糊不知何故,例如

myLink.href='mai'+'lto:'+'bob' 
      +'@' 
      +'example.com'; 

如果您需要在頁面上顯示的電子郵件地址,通常的解決辦法是生成使用類似PHP的GD圖像(雖然JavaScript注入應努力確定這太)。

這個想法是從HTML中刪除電子郵件地址,並用javascript注入它們。這樣,電子郵件地址就不會以任何HTTP流量的形式出現,這正是蜘蛛所看到的。

+0

謝謝,這是一個非常聰明的方式。 – Zaz 2010-09-08 01:47:42

+0

然後,你必須要求javascript使用此頁面,這可以減少你的用戶。 – 2010-09-08 14:26:13

1

我通常會將它們分成不同的部分,然後使用javascript重新組合它們。最終的javascript做一個document.write寫出html。

var mail = "mailto"; 
var namepart = "test.user"; 
var domainpart = "example"; 
var tld = "com"; 
var address = namepart + "@" + domainpart + "." + tld; 
document.write("<a href=" + mail + ":" + address + '">' + address + "</a>"; 
相關問題