2016-01-18 13 views
1

我最近在我開發的幾個網站上完成的一項工作是創建一個包含JavaScript函數,該函數根據參數打印電子郵件地址。下面舉個例子:使用JavaScript函數打印電子郵件地址以防止垃圾郵件有多好?

/index.html

... 
<head> 
<script src="/script/main.js></script> 
</head> 
<body> 
... 
<p><script>printEmail('info');</script></p> 
... 

/script/main.js

function printEmail(a) { 
    document.write('<a href="mailto:' + a + '@domain.com">' + a + '@domain.com</a>'); 
} 

的思維過程,我有是相對較小的腳本應該幫助下不包括阻止垃圾郵件機器人電子郵件地址完整位於源代碼中。它變得可讀的唯一地方是通過渲染引擎。

那麼它是安全的嗎?另外,它與其他預防方法相比有多安全?

回答

2

如果它在頁面加載時呈現頁面,我不認爲這會做任何事情,因爲垃圾郵件機器人會等待頁面加載,然後抓取電子郵件。

如果您需要進行用戶操作,比如將鼠標懸停在電子郵件上以顯示完整的電子郵件,此時javascript會將其打印出來,但我認爲這會更有效,並且我已經看到了正在使用的那些內容在之前的頁面上。

+0

因此,我想有一個第二個問題會有受到電子郵件影響的垃圾郵件不在源中,因爲該源根本不包含鏈接。或者,他們是否會查看呈現的輸出並嘗試使用正則表達式來查找與某些分隔符相匹配的內容,例如@符號後跟文本和句點?或者他們只是簡單地瀏覽一個頁面試圖找到一個鏈接點擊打開一個電子郵件協議處理程序? – DarkWolffe

+0

@DarkWolffe:從個人經驗來看,在源代碼中隱藏或不包含電子郵件地址會阻止不喜歡javascript的人撰寫垃圾郵件的90%。但其他10%使用Phantom.js編寫垃圾郵件,以便他們可以解析DOM而不是源代碼。這個數字可能會隨着越來越多的垃圾郵件發送者學習這個祕密而變化 – slebetman

相關問題