【问题标题】:What are some ways to protect emails on websites from spambots?有哪些方法可以保护网站上的电子邮件免受垃圾邮件机器人的侵害?
【发布时间】:2010-09-23 10:52:25
【问题描述】:

我正在创建一个面向 Internet 的公共网站,其中包含其销售人员的电子邮件地址。

我必须使用哪种编程选项来生成“mailto”并显示来自该地址的电子邮件,但限制垃圾邮件机器人获取该地址?

【问题讨论】:

    标签: email protection spam


    【解决方案1】:

    Recaptcha 具有基于email protection 的出色捕获。您可以使用站点反馈链接在我的website 的任何页面底部看到它已实现。

    【讨论】:

    • 不幸的是,在新版本的 reCAPTCHA 中,此功能不再存在。
    • @lorenzli:是的,我只是在几周前使用它更改了我的网站电子邮件。现在在 tech.dolhub.com。
    • @LawrenceDol google.com/recaptcha/mailhide 给出 404 错误,/admin/ 等子目录被重定向到没有邮件隐藏功能的新站点。
    • @Lorenzli 我通过简单的搜索找到了 mailhide 页面。添加了我的答案的链接。
    【解决方案2】:

    我知道 Facebook 通过显示图像而不是文本来做到这一点。当然,他们可以在图像上使用 OCR,但为什么只需要一个电子邮件地址呢?

    如果您真的不希望垃圾邮件机器人获取电子邮件地址,最好的方法是永远不要向任何人展示它。显示指向“联系此人”的链接,该链接会显示一个表单。在服务器端,将该表单的内容发送给收件人,并回复发件人的电子邮件地址。在他们的消息底部添加一个简短的说明“如果此电子邮件是垃圾邮件,请'单击此处'阻止此用户”,然后将阻止发件人的 IP。这种方法我用过很多次,从来没有投诉过。

    【讨论】:

    • 如果发件人输入错误的电子邮件地址会怎样?
    • 太糟糕了,我猜。如果您的用户有帐户,您可以预先填写发件人的姓名和电子邮件地址。
    • 比起写电子邮件,我不太可能填写表格。
    • 您在第二段中提到的方法很棒,但有时这些电子邮件会被过滤并自动发送到垃圾邮件文件夹。在这些情况下,收件人可能永远看不到邮件。
    【解决方案3】:

    您可以混淆它,但恕我直言,无论您做什么,总有一天垃圾邮件发送者会得到您的电子邮件地址。未来在于垃圾邮件过滤器,而不是试图对电子邮件地址保密。

    【讨论】:

    • 这就是答案。小伙子说得好。
    • 然而,您越是努力地在最初混淆它,从根本上消除问题,您在网站的整个生命周期内消除垃圾邮件的努力就越少。
    【解决方案4】:

    我过去所做的是使用 javascript 来构建 mailto: 链接。这对用户来说很好,因为他们只需点击链接,我还不知道有任何垃圾邮件机器人需要时间来执行 javascript。

    我想我是从Jakob Nielsen's useit.com 网站得到这个想法的。

    在页眉中我有这段 javascript:

    <script name="mailto" language="JavaScript">
        //<![CDATA[
    
        function load()
        {
            c1 = "bcl"
            c2 = "brian"
            c3 = "lane"
            c4 = "com"
            // Fill in the addresses
            document.getElementById("contact1").innerHTML = "<a href=" + "mail" + "to:" + c1 + "@" + c2 + c3 + "." + c4 + ">" + c1 + "@" + c2 + c3 + "." + c4 + "</a>";
        }
        //]]>
    
    </script>
    

    告诉它在页面加载时加载它:

    <body onload="load()">
    

    然后我在页面的正文中放了一个垃圾邮件陷阱的链接:

    <span id="contact1"><a href="mailto:spam@brianlane.com">spam@brianlane.com</a></span>
    

    【讨论】:

    • 这可能对简单的机器人起作用,但是理解足够 Javascript(或解析生成的源代码)的蜘蛛可以轻松收集电子邮件地址。
    • 用于 XHTML 合规性,因此您可以使用
    • 您认为这种方法对网站的索引有影响吗?谷歌应该索引电子邮件地址是否重要,还是不重要。
    【解决方案5】:

    我有一个解决方案,好吧,更像是一个理论。 问题是,机器人解析页面。他们可以得到文本。即使它被放置 通过 Javascript 以某种复杂的方式进入页面。

    所以,只有你 CSS3 伪元素!它不会是链接,但您的电子邮件将是可见的,并且永远不会是实际文本。像这样:

    .email::after{ content:'myemail@gmail.com'; }
    

    再一次,这是一个理论,我不知道这些邪恶的人能走多远,但我认为这很安全。


    更新(7 月 19 日')

    我现在认为这不是问题,因为电子邮件服务器已经能够很好地过滤垃圾邮件,并且没有理由制作任何精心设计的技巧来“保护”网页上的电子邮件文本。

    【讨论】:

      【解决方案6】:

      如果这不是静态 HTML 页面,而是 ASP.NET、JSP、Coldfusion 或 PHP 页面,那么您可以有一个包含所有销售人员列表的下拉框、一个 cmets 文本框和一个“联系我们”(即提交按钮)。单击该按钮时,它将调用一个服务器端代码,该代码创建电子邮件并将其发送到您的本地邮件服务器进行传递。外界永远不会知道您的销售人员的电子邮件地址,也不会知道您公司的电子邮件格式(即 firstname.lastname@yourcompany.com)。

      【讨论】:

        【解决方案7】:

        看看 PrivateDaddy - 我认为它完全符合您的要求:全自动、不显眼的电子邮件隐藏功能,甚至适用于禁用 JavaScript 支持的浏览器。你可以得到它here(当然免费)

        【讨论】:

        • 我在一个社区网站上工作,在用户生成的内容中有许多 (10K+) 电子邮件地址 - 打算实现服务器端解析代码 + 图像生成来解决问题 - 最后用 Privatedaddy 实现它并保持数据完整。
        • 也许我遗漏了一些东西,但 PrivateDaddy 混淆不仅似乎使文本未混淆(这可能对某些人有利),而且它提供的 example 似乎并没有混淆什么都没有。我听从了它的建议并检查了页面的来源,它以mailto: 和文本形式显示了完整的电子邮件地址。
        【解决方案8】:

        查看enkoder

        【讨论】:

        • 我们在工作场所使用 enkoder,效果很好,在所有面向公众的电子邮件中实施后,垃圾邮件大量下降。
        • enkoder 网站本身是电子邮件收割机吗‽...
        • enkoder 脚本使用 eval。小心使用。
        • 该网站已被删除,无法从archive.org :(
        【解决方案9】:

        您可以使用类似电子邮件obfuscation

        【讨论】:

        • 我可能是错的,但我相信现在它效率低下。我怀疑垃圾邮件发送者的爬虫无法解码实体,因为这个技巧现在众所周知。
        【解决方案10】:

        这是一个难题。如果您发布的电子邮件可以被 Web 浏览器解析以使其可点击,那么它就可以被垃圾邮件机器人解析。如果它不可点击(例如,如果它是一张图片),那么对用户来说就更难了。一方面是完美、无缝的用户体验,另一方面是完美的垃圾邮件拦截。不过,一个简单的 CSS 或 javascript 将电子邮件地址作为单独的令牌接收通常总比没有好。

        【讨论】:

          【解决方案11】:

          您只能将电子邮件地址“us...@mail.com”的一部分显示为重定向到验证码的链接,然后像 Google 网上论坛那样显示完整的电子邮件地址。

          【讨论】:

          • 就是上面的reCaptcha解决方案。
          【解决方案12】:

          我们曾经为电子邮件地址做经典的 ASP 字符串 cat,其伟大的想法是垃圾邮件机器人读取源代码,但不解析服务器端代码。我不知道这是否真的有效。

          【讨论】:

          • ?如果你查看源代码并看到纯电子邮件,它不会起作用!
          【解决方案13】:

          我写的东西对你有用吗?

          http://kevin-le.appspot.com/viewSource/sourceShare/asmRevealer.js

          ...你可以在这里看到演示:

          http://kevin-le.appspot.com/extra/contact

          它适用于 mailto,因此对用户来说很方便,但垃圾邮件机器人将无法获取您的要求。一旦你花 1 分钟看演示,就会很明显。

          【讨论】:

            【解决方案14】:

            我看到 mailto: 协议几乎已经死了......它很方便,但解析和收集太容易了。

            另外它也有它的缺点:如果你在网吧,它不会工作,因为它会调用它拥有的任何默认电子邮件客户端(如果有的话!)并且它没有在你的帐户上设置.如果您只使用在线电子邮件管理器,也一样...

            一种可能的解决方法是装饰电子邮件,依靠用户键入或更正它们:foo (at) example.com 或 foo-NOSPAM@REMOVE-THIS-example.com 是常见的方案(希望垃圾邮件发送者不会尝试破译这些常见的方案!),图形电子邮件地址是另一种方式。

            或者,正如所指出的,如果可以的话,最好的选择是有一个联系表格,带有some reasonable form of protection against robots,它可以在任何地方使用。尽管人们可能会反对要求电子邮件(要求回复!)的表单,但免责声明也可能很有用...... :-)

            【讨论】:

            • 如果您看到 mailto: 链接,大多数浏览器都允许您复制链接位置或电子邮件地址。即使您需要插件或扩展程序,某些浏览器也可能配置为支持网络邮件。
            • mailto 没有死!电子邮件是互联网的核心,没有它,人们怎么能互相交谈?它是如此基本。你点击一个链接,然后给那个人写任何东西。怎么会更容易?
            猜你喜欢
            • 2011-04-09
            • 2012-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-03
            • 2017-11-06
            • 2017-01-23
            相关资源
            最近更新 更多