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

Xeo*_*oss 5 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;
}
Run Code Online (Sandbox Code Playgroud)

这使得first.last@email.com成为:

first.last@email.com
Run Code Online (Sandbox Code Playgroud)

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

Omn*_*ous 2

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

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