email - 使电子邮件地址免受网页上的机器人攻击?

在网页上放置电子邮件地址时,您是否将它们放置为如下文本:

joe.somebody@company.com

或者使用一个聪明的技巧来欺骗电子邮件地址收集机器人?例如:

HTML 转义字符:

joe.somebody@company.com

Javascript 解密器:

function XOR_Crypt(EmailAddress)
{
    Result = new String();
    for (var i = 0; i < EmailAddress.length; i++)
    {
        Result += String.fromCharCode(EmailAddress.charCodeAt(i) ^ 128);
    }
    document.write(Result);
}

XOR_Crypt("êïå®óïíåâïäùÀãïíðáîù®ãïí");

人类解码:

joe.somebodyNOSPAM@company.com

joe.somebody AT company.com

你使用什么,甚至打扰?

最佳答案

在 CSS 中处理内容和属性:

.cryptedmail:after {
  content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); 
}
<a href="#" class="cryptedmail"
   data-name="info"
   data-domain="example"
   data-tld="org"
   onclick="window.location.href = 'mailto:' + this.dataset.name + '@' + this.dataset.domain + '.' + this.dataset.tld; return false;"></a>

当javascript被禁用时,只是点击事件不起作用,电子邮件仍然显示。

另一种有趣的方法(至少没有点击事件)是利用从右到左的标记来覆盖书写方向。更多信息:https://en.wikipedia.org/wiki/Right-to-left_mark

https://stackoverflow.com/questions/483212/

相关文章:

html - 当鼠标移过表格中的一行时将光标更改为手形

jquery - 在 jQuery 中查找所有未选中的复选框

html - Flexbox:每行 4 个元素

css - 即使没有内容,如何强制 DIV block 扩展到页面底部?

html - 如何保存 Chrome 开发者工具样式面板的 CSS 更改?

html - 在 Notepad++ 中格式化代码

html - 如何在 HTML 页面上显示原始 HTML 代码

javascript - 使用 ng-include 时失去作用域

html - 使用 :before and :after CSS selector to inser

html - 如何强制缠绕没有任何空白的长字符串?