我在想什麼Rails提供了混淆電子郵件地址以防止爬蟲,垃圾郵件和郵件收集器收集地址以發送垃圾郵件。如何保護我的電子郵件地址免受垃圾郵件的攻擊
可能是我使用了錯誤的關鍵字,但沒有真正能夠找到寶石。
我發現了一個統計比較不同方法來掩蓋郵件地址: http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/
我寫的,它結合了上面兩個方法,一個片段。
的文檔片斷尚未成熟,但我還是想要分享它,它可能是其他面臨同樣問題的起點。 (接下來的一步是用隱藏的純文本替換已經鏈接的地址。)
在開始之前,我想知道什麼是最佳的rails實踐。這是一個普遍的問題,我一定錯過了處理它的寶石!?
如果我使用我的方法,在我的應用中整合/觸發它的最佳方法是什麼?
任何一種before_filter?渲染之前?像那樣的東西?
或者像我現在這樣做,在視圖中調用它作爲helper_methode?
它甚至可以被添加到字符串類...
在我application_helper.rb
def obfuscate_emails(content, domain_prefix = 'nirvana', clss = 'maildecode')
# This shall protect emails from spam spiders/crawlers gathering emails from webpages
# Add the following SASS to your Stylesheets
#
# span.maildecode
# direction: rtl
# unicode-bidi: bidi-override
#
# Further more you might want to use Javascript(.erb) to add links to the email addresses like this
#
# $(document).ready(function() {
# function link_emails(subdomain){
# console.log("Find an replace reverse emails, fake subdomain is "+subdomain);
# $(".maildecode").each(function() {
# email = $(this).text().replace('.'+subdomain,'').split("").reverse().join("");
# console.log("- clean email is "+email);
# // $(this).html($(this).text().replace('.'+subdomain,'')); // uncomment if you like to clean up the html a bit
# $(this).wrap('<a href="mailto:'+email+'">');
# });
# }
#
# link_emails('<%= ENV['OBFUSCATE_EMAIL_SUBDOMAIN'] %>');
# });
#
# Thanks to
# http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/
email_re = /[\w.!#\$%+-][email protected][\w-]+(?:\.[\w-]+)+/
content.scan(email_re).each do |mail|
obfuscate_mail = "<span class='#{clss}'>#{mail.reverse.split('@')[0]}<span style='display: none;'>.#{domain_prefix}</span>@#{mail.reverse.split('@')[1]}</span>"
content = content.sub(mail, obfuscate_mail)
end
content # use raw(obfuscate_emails(content)) otherwise rails will escape the html
end
我有點發揮各地。很好!我喜歡編碼選項。這幾乎符合我的需求。我更尋找一顆寶石。我想有一個方法,以HTML /文本解析和掩蓋郵件。 –
注意:這在Rails 4中不起作用。從文檔:在Rails 4.0之前,mail_to提供了用於編碼地址的選項,以阻止電子郵件收割者。要利用這些選項,請安裝actionview-encoded_mail_to gem._ – zwippie