【发布时间】:2017-05-10 04:40:42
【问题描述】:
tl;博士
在不使用脚本的情况下向机器人隐藏电子邮件地址并维护mailto: 功能。方法还必须支持屏幕阅读器。
总结
使用脚本或联系表格混淆电子邮件
电子邮件地址需要对人类查看者完全可见并维护
mailto:功能电子邮件地址不得为图片格式。
电子邮件地址必须对垃圾邮件爬虫和垃圾邮件机器人“完全”隐藏和任何其他类型的收割机
想要的效果:
没有脚本,拜托。项目中没有使用脚本,我想保持这种方式。
电子邮件地址要么显示在页面上,要么可以在某种用户交互后轻松显示,例如打开模式。
用户可以点击电子邮件地址,这反过来会触发
mailto:功能。-
单击电子邮件将打开用户的电子邮件应用程序。
换句话说,
mailto:功能必须工作。 电子邮件地址不可见或未被识别为机器人的电子邮件地址(包括页面来源)
我没有一个充满垃圾邮件的收件箱
不有什么作用
-
添加联系表格 - 或类似的 - 而不是电子邮件地址
我讨厌联系表格。我很少填写联系表格。如果没有电子邮件地址,我会查找电话号码,如果没有,我会开始寻找替代服务。如果绝对必要,我只会填写联系表格。
-
用地址的图像替换地址
这对使用屏幕阅读器的人造成巨大不利(请记住您未来项目中的视力障碍者)
它还删除
mailto:功能,除非您使图像可点击,然后将mailto:功能添加为链接的href,但这无法达到目的 现在该电子邮件对机器人可见。
什么可能有效:
pseudo-elements在CSS中的巧妙用法使用
base64编码的解决方案分解电子邮件地址并将各个部分分散到整个文档中,然后在用户单击按钮时将它们重新组合在一起(这可能涉及多个
CSS类和anchor tags的用法)-
通过
CSS更改html属性@MortezaAsadi 在下面的 cmets 中优雅地提出了这种可能性。这是完整的链接 - 文章来自 2012 年:
其他超出我知识范围的创造性解决方案。
类似问题/修复
(这是 Joe Maller 建议的一个很好的修复方法,效果很好,但它是基于脚本的。它的外观如下;
<SCRIPT TYPE="text/javascript">
emailE = 'emailserver.com'
emailE = ('yourname' + '@' + emailE)
document.write('<A href="mailto:' + emailE + '">' + emailE + '</a>')
</script>
<NOSCRIPT>
Email address protected by JavaScript
</NOSCRIPT>
-
Looking for a php only email address obfuscator function
(一个巧妙的解决方案,使用
PHP和CSS首先reverse 使用 PHP 的电子邮件,然后 reverse 它 使用 CSS)一个非常有前途的解决方案伟大的!但这太容易解决了。 -
Is it worth obfuscating email addresses on the web these days?
(Javascript 修复)
-
Best way to obfuscate an e-mail address on a website?
所选答案有效。它实际上工作得很好。它涉及将电子邮件编码为
html entities。可以改进吗?这是它的样子;
<A HREF="mailto: yourname@domain.com"> yourname@domain.com </A> -
Does e-mail address obfuscation actually work?
(这个超级用户问题的选择答案很棒,它展示了使用不同混淆方法接收的垃圾邮件数量的研究。
似乎使用
CSS操作电子邮件地址以使其成为rtl确实有效。这与我在本节中链接的第一个问题中使用的方法相同。我不确定将
mailto:功能添加到修复程序会对结果产生什么影响。 SO 上还有很多其他问题都有类似的答案。我没有找到任何符合我想要的效果
问题:
是否可以通过结合两个或多个修复程序(甚至添加新修复程序)提高上述电子邮件混淆方法的效率(即尽可能少的垃圾邮件) 同时:
A- 维护mailto: 功能;和
B- 支持屏幕阅读器
编辑:
下面的许多答案和 cmets 提出了一个非常好的问题,同时表明如果没有某种 js 就不可能做到这一点
提出/暗示的问题是:
为什么不使用
js?
答案是我对js过敏
尽管开玩笑,
我问这个问题的三个主要原因是:
联系表格作为替代品越来越被接受 提供电子邮件地址 - 他们不应该这样做。
如果它可以在没有脚本的情况下完成,那么它应该在没有脚本的情况下完成 脚本。
好奇心:(事实上我目前正在使用
js修复程序之一)我想看看讨论这个问题是否会带来更好的做事方式它。
【问题讨论】:
-
我认为,如果您希望维护
mailto:功能并且您不愿意使用 Javascript,那么这是不可能的。 -
你想使用 CSS 来改变 HTML 属性吗?
-
@Rishav 我同意你的观点,如果不使用 js 来获得想要的效果可能会很棘手;但是,我会说,诸如我强调的将电子邮件编码为 html 实体的方法的存在可能会否定它的不可能性。
-
@MortezaAsadi 你能发布一个你所说的答案的例子吗?
-
没有脚本就无法解决这个问题,避免它们的要求毫无意义。我有办法解决这个问题,但需要一个脚本。
标签: html css web-crawler mailto