在不受垃圾邮件发送者攻击的情况下,在我的网站上显示电子邮件地址的最佳方式是什么?

时间:2011-01-25 13:52:27

标签: html webforms spam-prevention

在不受垃圾邮件发送者攻击的情况下,在我的网站上展示电子邮件地址的最佳方式是什么?

方法foo at fooland dot com并不是我正在寻找的。我需要以一种普通人可理解的方式呈现它。

修改

显示电子邮件是动态的

10 个答案:

答案 0 :(得分:23)

recent answer on superuser.com通过比较一系列常用方法来解决这个问题。

答案 1 :(得分:8)

答案 2 :(得分:7)

如何使用包含电子邮件地址的简单图片?

动态生成映像的技术可以是使用操作方法将ASP.NET MVC控制器添加到WebForms项目,该方法返回包含动态生成的包含电子邮件地址的图像的FileResult

public class DynamicImageController : System.Web.Mvc.Controller
{
    public FileResult Email(int id)
    {
        // TODO: Code that uses the ID value to retrieve the
        // email address for this customer (for example)
    }
}

在您的网络表单上,您可以使用图像服务器控件,并从后面的代码中相应地设置ImageUrl(类似"/DynamicImage/Email/" + customerId)。

此页面有一个示例说明如何使用FileResult呈现图像(此方案中的图表)

http://www.codeproject.com/KB/aspnet/MvcChartControlFileResult.aspx

答案 3 :(得分:4)

我开始使用的是CSS代码重定向:

<span style="unicode-bidi:bidi-override; direction: rtl;">moc.niamodruoy@uoy</span>

您可以使用某种类型的String.Reverse功能(取决于您使用的语言)在页面上插入动态电子邮件地址。

这是最简单有效的方法之一。在这里查看其他人:https://superuser.com/questions/235937/does-email-address-obfuscation-actually-work

答案 4 :(得分:2)

基于图像的方法的缺点是它不能被用户复制粘贴。

我认为某种呈现电子邮件的JavaScript会很好。如果它足够棘手,机器人可能无法(或不愿意)找到它。例如,假设您从图像开始(适用于所有人)。然后,如果用户点击它,它会被一些JavaScript魔术变成可复制粘贴的文本。

另一个想法是在页面加载后2秒用文本替换图像。如果机器人匆忙(他们通常是吗?)他们只会看到图像。此外,如果用户很快并且在替换之前尝试选择图像,则JavaScript可以立即触发并用正确的文本替换它。使用鼠标悬停或点击事件或类似事件。

答案 5 :(得分:2)

Javascript编码怎么样?可以使用这样的PHP函数:

function encodeEmail ($email) {
  $ret = '';
  $a = '<a href="mailto:' . $email . '">' . $email . '</a>';
  $i = 0;
  $c = substr($a, $i, 1);
  while ($c != FALSE) {
    $ret .= '%'.dechex(ord($c));
    $c = substr ($a, ++$i, 1); 
  }
  return "<script type='text/javascript'>document.write(unescape('$ret'));</script>";
}

(代码可能需要一些修改,因为我在没有检查错误的情况下编写它。)

答案 6 :(得分:2)

<a href="mailto:email@example.org">email@example.org</a>

说真的,在我看来,这些解决方案都不值得为用户带来额外的麻烦。

垃圾邮件过滤器现在真的很棒(我的Gmail中几乎没有垃圾邮件,我总是直接使用我的电子邮件地址)如果你想要接触到一个观众,你的优先考虑应该是他们的安慰,而不是你的。< / p>

这可能是一个主观问题:)

答案 7 :(得分:0)

如果你不介意用户无法复制它,我会说一个图像方法。

您可以使用JavaScript从您喜欢的随机算法构建地址。您也可以将它放在仍然可复制的alert()中,但您的电子邮件地址永远不会触及DOM。

答案 8 :(得分:0)

更好的方法是像谷歌小组一样,他们不会显示实际的电子邮件ID,只是开头,但是,如果你是一个人,你可以使用验证码方法验证访客是一个人或机器人。 此外,您可以在系统中嵌入声音文件或基于闪存的显示,以显示您的电子邮件ID。你可以创建一些动作脚本闪存,它看起来很好,很有吸引力并且也可以实现目的。 无论是声音还是闪光,都是我觉得好看的。您甚至可以创建一个动态图像,每次用户重新加载页面时都会不断更改。 祝你好运!

答案 9 :(得分:0)

其他人提到使用图片,这是一篇关于MakeUseOf的文章链接到将为您构建这些类型的图像的网站......

http://www.makeuseof.com/dir/hidetext-easily-convert-text-email-addresses-images/