【问题标题】:Is HTML Email Obfuscation safe enough to stop bots?HTML 电子邮件混淆是否足够安全以阻止机器人?
【发布时间】:2011-03-26 19:23:44
【问题描述】:

我知道大多数 javascript 电子邮件混淆解决方案可以阻止机器人死在他们的轨道上 - 但有时很难在某些地方使用/插入 javascript。

为此,我想知道是否有人知道机器人是否足够聪明,可以将 HEX 和 DEC 中的 HTML 实体翻译成有效的电子邮件字符串?

例如,假设我有一个函数可以将字符串字符随机转换为三种形式之一 - 这足够了吗?

hide_email($email)
{
    $s='';
    foreach(str_split($email)as$l)
    {
        switch(rand(1,3))
        {
            case 1:$s.='&#'.ord($l).';';break;
            case 2:$s.='&#x'.dechex(ord($l)).';';break;
            case 3:$s.=$l;
        }
    }
    return$s;
}

这使得 first.last@email.com 变成这样的:

first.last@email.com

我会假设机器人创建者已经为这样的事情添加了一个正则表达式模式......

【问题讨论】:

  • 没有什么是足够安全 :)
  • @BoltClock:没有一个的东西是足够安全的,这就是我们练习深度防御的原因。现在请原谅我在摸索我的腰带和吊带......
  • @Steven Sudit:公平……够了。
  • 考虑用图片替换电子邮件地址。

标签: security email bots


【解决方案1】:

如果机器人使用在返回结果之前执行 HtmlDecode 的客户端,我不会感到震惊。

【讨论】:

    【解决方案2】:

    我认为这不是特别安全。如果我编写代码来解释 HTML,将实体解码为其对应的字符将是最先进入的代码位之一。

    作为进一步的辩护,我建议明智地使用标签(例如<span> 标签),甚至可能是嵌套的。这需要更多的努力来解码,并且仍然不需要 Javascript。

    【讨论】:

    • 没错,解码实体并不难。
    【解决方案3】:

    不久前我读到了一篇有趣的文章,关于一个人用九种不同的混淆方法发布了一个网页,然后等了一年看看每个电子邮件地址能得到多少。

    这里是文章的链接:Nine Ways to Obfuscate E-mail Addresses Compared。侧边栏中的某些图片可能不适合工作,如果您的工作不喜欢穿比基尼的女孩。

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多