手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:混淆

如何混淆电子邮件来防止垃圾发送者

这是一篇来自cssrain站长的译文。很多时候,我们都不敢在自己的勃客、网站上留下自己的mail,因为 这会带来大量的垃圾邮件。
但如果不留mail,又会让很多用户、过客无法与自己联络,这真是一个两难的问题。在几年前就有那种把email改成用document.write输出的情况。但这种并不实用。

看完这篇文章,或者你应该有相对较好的方法来处理你的邮件,不过我个人推荐的是这种;

XML/HTML代码
  1. <!--这是一个简单的例子,可能并不能运行,我是直接手工输入的,没有debug,只是介绍原理-->  
  2. <a href="#" onclick="sendmail()" id='sendmail'>gou<span class="bgcolor">0982134</span>ki@<span class="bgcolor">0912ujf</span>neatdns.com</a>  
  3. <script>  
  4. function sendmail(){  
  5.     $('#sendmail span').remove();  
  6.     //然后反$('#sendmail').text() 拷贝到剪贴板,给用户提示一下  
  7. }  
  8. </script>  

改写了一下,终于可以走通了,不会用clone,只能用这种替代方案了。。代码较差:

XML/HTML代码
  1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
  2. <style>  
  3. #sendmail span{display:none}  
  4. #hiddenmail {display:none}  
  5. </style>  
  6. <a href="#" id='sendmail'>gou<span>0982134</span>ki@<span>0912ujf</span>neat<span>091r</span>dns.com</a><span id="hiddenmail"</span>  
  7. <script>  
  8. $(document).ready(function(){  
  9.     $('#hiddenmail').html( $("#sendmail").html());  
  10.     $("#hiddenmail span").remove();  
  11.     $('#sendmail').attr("href" ,"mailto:"+$("#hiddenmail").text());  
  12. });  
  13. </script>  
这种情况,邮件地址可以正常显示,但如果从网页上选择邮件地址再复制的话,就会把span所包含的内容也复制进去了。个人觉得这样处理比较好,对于span里的内容,可以通过程序生成插进去。位置也可以不一样,这样别人就无法直接复制网址了。而且点击后也能够发送邮件。但问题同样明显,如果禁用了javascript,那就会出现一堆无效字符

 

以下是66[cssrain站长]翻译的文章内容:

一直以来我都认为” mailto: “是一个神圣的链接。通过它,我可以在网页中发布我的email地址,并且任何人都可以通过单击这个链接联系我。当然前提是在一个纯洁的Web环境下 ---在垃圾邮件发送者出来之前。举个例子说:今天你在你的网页中使用了” mailto: “,那么30秒后你将收到第一封伟哥信息。垃圾邮件发送者的速度之快另你惊讶。从今以后,你将收到越来越多的垃圾邮件。那么我们有什么办法,在自己的网页 中发布自己邮箱的同时,不引起垃圾邮件发布者的注意呢?

最明显的解决办法是在你的HTML中使用机器不可读的Email。比如:“bob (at) bobsdomain dot com”。虽然这可以使垃圾邮件发送者不再那么容易,但它同时也会为难您的用户。

另一种选择是使用JavaScript生成的电子邮件地址 ,然后对字符串加点编码。如:

<p>contact :
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>

 

这将阻止大多数垃圾邮件发送者,但如果用户禁用JavaScript将不会看到您的地址。
(我不推荐使用 document.write() )

一个更好的解决办法是使用它们两者相结合的技术,以阻止垃圾邮件,同时不会造成用户的困难。

首先在我的网页中使用一个人性化的,同时垃圾邮件发送者不能收集的email地址。我们还将它链

接到一个联络网页,例如:

< p>Contact <a href="contact.html" class="email">bob (at) bobsdomain dot com</a></p> 

请注意,我们为链接添加了一个class,并设置为”email”

接下来写一个JavaScript函数搜寻网页的伪装的电子邮件,并将它转换成真正的mailto:链接。

我们将创建一个' email.js '文件,将它包括在我们的HTML
< script type="text/javascript" src="email.js"></script>

 

所需要的代码很短,代码如下:
function EmailUnobsfuscate() {
 //查找所有的a
 var link = document.getElementsByTagName && document.getElementsByTagName("a");
 var email, e;
 for (e = 0; link && e < link.length; e++) {
  // 判断当前link的class是否含有"email"
  if ((" "+link[e].className+" ").indexOf(" email ") >= 0) {
   // 获取全小写的email地址
   email = link[e].firstChild.nodeValue.toLowerCase() || "";
   // 转换email地址
   //将dot转为.
   email = email.replace(/dot/ig, ".");
   //将(at)转为@
   email = email.replace(/\(at\)/ig, "@");
   //将空格转为"" 
   email = email.replace(/\s/g, "");
   //判断是否为有效email
   if (/^[^@]+@[a-z0-9]+([_\.\-]{0,1}[a-z0-9]+)*([\.]{1}[a-z0-9]+)+$/.test(email)) {
    // 把真正的email插入到页面中
    link[e].href = "mailto:" + email;
    link[e].firstChild.nodeValue = email;
   }
  }
 }
}

 最后,我们需要确保在网页加载完毕后运行email.js

window.onload = EmailUnobsfuscate;

使用两者结合的结果是:

1、我们的原始HTML网页中没有mailto:链接,同时也不会轻易收到垃圾邮件发送者发来的垃圾邮件。

2、绝大多数的用户(那些启用JavaScript )将看到一个标准的电子邮件地址和mailto:链接。

3、少部分禁用脚本的用户可以看到bob (at) bobsdomain dot com的地址。

说了这么多,意图就是展示这些概念,而不是这些代码。尽管例子能正常工作,但我还是建议你:

1、使用您自己的伪装电子邮件格式,例如:bob {@} bobsdomain – dot - com

     因为垃圾邮件发送者可以阅读这篇文章后变换编码的电子邮件,然后轻易的对付你!

2、使用不同的链接标识符--- “email”有点明显!

3、使用JavaScript库,例如jQuery ,使代码更为简短。您还应该确保它应付空格或其他DOM
点周围的电子邮件地址文字(不处理的代码段)。

4、使用一个更强大的事件处理程序来取代window.onload

 

 

祝您好运。


例子演示: http://www.cssrain.cn/demo/howtoemail.html

原文地址: http://www.sitepoint.com/blogs/2009/05/05/stop-spam-harvesting-email-obfuscation/

Tags: 混淆

中国人最易误读的10个姓氏

单位有个同事,名字中有个“仇”字,因为不是姓,所以我就把它读成了“chou”,可是在看他的email地址的时候,发现它的读音为“qiu”,所以很奇怪的翻了一下金山词霸,发现网上有一个BLOG里面有介绍,不敢独享。

这是郭灿金先生的博客中的内容:

http://blog.sina.com.cn/s/blog_4928cce1010086cy.html
  1. 中国人最易误读的10个姓氏  
  2.   
  3.    
  4.   
  5.     现在我们已经习惯于说“按姓氏笔画为准”之类的话了,在大多数人心目里,姓氏是一回事。其实,在古代,姓和氏之间有着较大的差异。  
  6.   
  7.     “姓”、“氏”的起源很早。许慎在《说文解字》中这样解释:“姓,人所生也,从女、生,生亦声”。所以,“姓”的本义是“生”,本来是代表有共同血缘、血统、血族关系的族号。“氏”可以说是“姓”的分支。“氏”冠在男人的名前,表露着一个男人的封地、爵位、官职、以及追谥,代表了男人的荣耀、功业和尊严。譬如武王的四弟叔旦,由于其采邑为周,被称为周公。其实,周公为姬姓,周只是他的氏而已。  
  8.   
  9.     氏集中产生于周朝。周朝初年,为控制被征服的广大地区,大规模地分封诸侯。而这些诸侯国的后人即以封国名为氏。另外,各诸侯国又以同样的方式对国内的卿大夫进行分封,大夫的后人又以受封国的名称为氏。以后,各种形式的氏的来源又不断出现,并且氏的数量远远超过了姓的数量。但是只有贵族才有氏,贫贱者有名无氏,氏成为贵族独有的标志。至于贵族妇女,则无论怎么称呼都必须带上姓,这反映了中国古代封建宗法制度的权威性和严谨性。  
  10.   
  11.     “姓”是从居住的村落,或者所属的部族名称而来。“氏”是从君主所封的地、所赐的爵位、所任的官职,或者死后按照功绩,追加的称号而来。所以贵族有姓,有名,也有氏;平民有姓,有名,没有氏。  
  12.   
  13.     顾炎武曾一针见血地说出了姓和氏的区别:“氏一传而可变,姓千万年而不变。” 姓为氏之本,氏由姓所出。商周以前,姓用以区别婚姻,故有同姓、异姓、庶姓之说。氏用以区别贵贱,贵者有氏,而贫贱者有名无氏。氏同而姓不同,婚姻可通,同姓则不可通婚。  
  14.   
  15.     显然,因为姓强调的重点在于血缘关系,所以在具体的社会实践中,“姓”往往起着“别婚姻”的作用。“礼不娶同姓”,“父母同姓,其出不蕃”,“同姓不婚,恶不殖也”。  
  16.   
  17.     所以,“姓”和“氏”里反映着至为重要的信息,切不可混为一谈。  
  18.   
  19.     在长期的发展中,许多姓氏的读音发生了很大的变化,这给我们的日常交往带来了很大的障碍,譬如下面十个姓氏的读音,就非常容易读错,不可不慎:  
  20.   
  21. 1,  句:作姓氏时读gōu;  
  22.   
  23. 2,  黑:作姓氏时读hè;  
  24.   
  25. 3,  区:作姓氏时读ōu;  
  26.   
  27. 4,  朴:作姓氏时读piáo;  
  28.   
  29. 5,  仇:作姓氏时读qiú;  
  30.   
  31. 6,  查:作姓氏时读zhā;  
  32.   
  33. 7,  繁:作姓氏时读pó;  
  34.   
  35. 8,  员:作姓氏时读yùn;  
  36.   
  37. 9,  蕃:作姓氏时读pí;  
  38.   
  39. 10, 尉迟:作姓氏时读yùchí。  
看到这里或许你也会认为应该读 qiu 了吧。可是在他的博客下面还有这么一段:

网友漫卷西风对“仇”姓的不同意见,供各位参考
 
  1.  就郭灿金中国人最易误读的10个姓氏之中仇姓的读法的辩解  
  2.     郭灿金在中国人最易误读的10个姓氏,告诉大家10个姓的读法,其中关于仇:作姓氏时读qiú,我在《更为叫绝的一字四姓》里提到这个姓的两个读法,并且在郭灿金的评论中告诉了大家这个读法,但是不知道怎么我的评论没有了,我想是不是郭给删了。在这里我对郭有点看法,你不仅仅是删了我的评论,可以这样说你在我的心中的地位也被删去。你是文学博士,河南大学教师学识渊博,但虚荣心极强。以为你说的就是权威,就是正确的。但是就这个仇字,我还是要告诉你告诉大家 。  
  3.     这个仇,查资料只有仇qiu 姓,没有仇chou姓,但是实际有仇chou姓,仇qiu 姓大家比较认同,仇chou姓就经常被叫为仇qiu 姓,我的一位亲戚就姓仇chou,并且是一个家族,在宁夏永宁县,有兴趣的朋友可以进一步验证。  
  4.     请郭不要误导,大家也不要误入歧途。  
  5.     尽信书不如无书。  
然后又搜索了一下:
http://news.sina.com.cn/o/2008-10-13/150014567208s.shtml
  1.   红网10月13日讯(记者 朱青 实习生 陈帅)在字音上犯下常规错误是歌坛近年来屡见不鲜的事情,伊能静早前在《念奴娇》中就将“羽扇纶(guan)巾”唱成“羽扇纶(lun)巾”,而近日才推出新歌的与非门乐队亦将歌词中百家姓唱错,将姓氏中的“仇(音qiu)”唱成了“chou”。  
  2.   
  3.   频频在识字问题上出错,歌手的文学水平倍受质疑。对此,与非门所属唱片公司中天门文化相关负责人今日接受采访时直言已经获悉出错一事,“确实对某些字的读音还了解得不够准确,这点我们表示真诚的歉意。目前,乐队主唱蒋凡已返回广州,紧急进棚纠错。”该负责人还表示由于该单曲制作人对早点版本的缩混效果很不满意,目前单曲经过两个昼夜的连续工作已完成重新制作,“新版本比早前的缩短了30秒左右,随后将全面重发”。  
  4.   
  5. 稿源:红网 作者:朱青 实习生 陈帅   
觉得这个乐队好可怜呀。。。

 

Tags: 姓氏, , 混淆