我知道大多数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
我认为机器人创建者已经为这样的事情添加了一个正则表达式模式......
答案 0 :(得分:2)
如果机器人在返回结果之前使用了一个HtmlDecode的客户端,我不会感到震惊。
答案 1 :(得分:2)
我不认为这特别安全。如果我编写代码来解释HTML,那么将实体解码为相应的字符将成为第一批代码。
作为进一步的辩护,我建议明智地使用标签(例如<span>
标签),甚至可能嵌套。这需要更多的努力来解码,但仍然不需要Javascript。
答案 2 :(得分:2)
我前段时间读过一篇有趣的文章,讲的是一个人发布了一个网页,其中有九种不同的混淆方法,并等了一年才知道每个电子邮件地址的数量。
以下是该文章的链接:Nine Ways to Obfuscate E-mail Addresses Compared。如果您的工作对穿着比基尼的女孩皱眉,侧边栏中的一些图片可能不安全。