gpt4 book ai didi

ruby-on-rails-3 - 如何保护我的电子邮件地址免受垃圾邮件机器人的侵害

转载 作者:行者123 更新时间:2023-12-02 22:19:31 26 4
gpt4 key购买 nike

我想知道 Rails 提供了什么来混淆电子邮件地址以保护它免受爬虫、垃圾邮件机器人和邮件收割机的攻击,收集地址以发送垃圾邮件。

可能是我使用了错误的关键字,但并没有真正找到 gem。

我找到了一个比较不同方法来屏蔽邮件地址的统计数据: http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/

我写了一个结合了前两种方法的片段。

截图还不成熟,但我还是喜欢分享它,这可能是其他面临同样问题的人的起点。(下一步是用模糊的纯文本替换已经链接的地址。)

在开始之前,我想知道 Rails 中的最佳实践是什么。这是一个常见问题,我一定错过了处理它的绝妙方法!?

如果我使用我的方法,在我的应用中集成/触发它的最佳方法是什么?

任何类型的 before_filter?渲染前???类似的东西?

或者像我目前所做的那样,在 View 中将其作为 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.!#\$%+-]+@[\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

最佳答案

只需使用 Rails 内置的 mail_to 助手...

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-mail_to

mail_to 'email@here.com', 'click to email', :encode => .... # couple of encoding options

注意:这在 Rails 4 中不再有效。来自文档:在 Rails 4.0 之前,mail_to 提供了对地址进行编码的选项,以阻止电子邮件收割机。要利用这些选项,请安装 actionview-encoded_mail_to gem。 (感谢@zwippie)

关于ruby-on-rails-3 - 如何保护我的电子邮件地址免受垃圾邮件机器人的侵害,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13941554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com