HTML Email Obfuscation是否足够安全以阻止机器人?

时间:2010-08-07 20:38:42

标签: security email bots

我知道大多数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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我不认为这特别安全。如果我编写代码来解释HTML,那么将实体解码为相应的字符将成为第一批代码。

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

答案 2 :(得分:2)

我前段时间读过一篇有趣的文章,讲的是一个人发布了一个网页,其中有九种不同的混淆方法,并等了一年才知道每个电子邮件地址的数量。

以下是该文章的链接:Nine Ways to Obfuscate E-mail Addresses Compared。如果您的工作对穿着比基尼的女孩皱眉,侧边栏中的一些图片可能不安全。