Codeigniter - 使机器人无法读取电子邮件

时间:2013-10-23 11:14:28

标签: codeigniter security email bots

在codeigniter中是否有一种方法可以让机器人无法读取电子邮件链接?如果没有,是否有人推荐一个像样的简单解决方案?

4 个答案:

答案 0 :(得分:2)

糟糕..

Codeigniter在URL帮助程序中有一个函数safe_mailto()

答案 1 :(得分:0)

我被告知这适用于Google Search Appliance

<!--googleoff: index-->
<a href="mailto:abc@stackoverflow.com">my email</a>
<!--googleon: index-->

来源:http://perishablepress.com/tell-google-to-not-index-certain-parts-of-your-page/

如果不正确,请告诉我。

答案 2 :(得分:0)

这里可能没有任何完美的解决方案,特别是如果您不想给用户带来不便。

一种简单的方法(可以与ajreal提到的google评论结合使用)将是使用实体编码来混淆其来源。这会阻止简单的机器人。

请参阅此处了解详情:http://www.wbwip.com/wbw/emailencoder.html

答案 3 :(得分:0)

CodeIgniter在URL Helper类中有一个safe_mailto()方法,用于混淆HTML源代码中的电子邮件地址,而不会影响最终用户。

https://codeigniter.com/userguide3/helpers/url_helper.html#safe_mailto

示例模板代码:

<p>My e-mail address is <?php $this->load->helper('url'); echo safe_mailto('abc@gmail.com'); ?>.</p>

示例HTML输出:

<p>My e-mail address is <script type="text/javascript">
//<![CDATA[
var l=new Array();
l[0] = '>';
l[1] = 'a';
l[2] = '/';
l[3] = '<';
l[4] = '|109';
l[5] = '|111';
l[6] = '|99';
l[7] = '|46';
l[8] = '|108';
l[9] = '|105';
l[10] = '|97';
l[11] = '|109';
l[12] = '|103';
l[13] = '|64';
l[14] = '|99';
l[15] = '|98';
l[16] = '|97';
l[17] = '>';
l[18] = '"';
l[19] = '|109';
l[20] = '|111';
l[21] = '|99';
l[22] = '|46';
l[23] = '|108';
l[24] = '|105';
l[25] = '|97';
l[26] = '|109';
l[27] = '|103';
l[28] = '|64';
l[29] = '|99';
l[30] = '|98';
l[31] = '|97';
l[32] = ':';
l[33] = 'o';
l[34] = 't';
l[35] = 'l';
l[36] = 'i';
l[37] = 'a';
l[38] = 'm';
l[39] = '"';
l[40] = '=';
l[41] = 'f';
l[42] = 'e';
l[43] = 'r';
l[44] = 'h';
l[45] = ' ';
l[46] = 'a';
l[47] = '<';

for (var i = l.length-1; i >= 0; i=i-1) {
    if (l[i].substring(0, 1) === '|') document.write("&#"+unescape(l[i].substring(1))+";");
    else document.write(unescape(l[i]));
}
//]]>
</script>.</p>