将电子邮件地址放在PHP变量中反对电子邮件收集器是否安全?


Is it safe to put email addreses in PHP variables against email harvesters?

在没有电子邮件收集器拾取电子邮件的情况下使用这两行是否安全?

My email: <a href="mailto:<?php echo 'testing@example.com'; ?>"><?php echo 'testing@example.com'; ?></a>

或者这个带有变量

<?php $email = 'testing@example.com'; ?>
My email: <a href="mailto:<?php echo $email; ?>"><?php echo $email; ?></a>

还是只要它是PHP生成的,那么它就是安全的?

这些根本不能提供任何保护。PHP在服务器端运行。它将生成一个HTML文档并将其发送到客户机。从机器人或用户的角度来看,这与将电子邮件地址放在普通HTML文档中完全相同:

My email: <a href="mailto:testing@example.com">testing@example.com</a>

你的两个例子给出相同的HTML输出

My email: <a href="mailto:testing@example.com">testing@example.com</a>

容易被爬虫攻击。

如果电子邮件地址如此重要。

创建一个联系人表单,添加一些验证码并通过PHP发送表单详细信息,而不会在页面的任何地方暴露电子邮件地址。

这两种方法都不安全——机器人会抓取生成的HTML服务,所以PHP在此之前已经退出了,并且已经吐出了电子邮件地址。

对于类似的解决方案,最好的选择是在DOM加载后使用JavaScript注入电子邮件地址。大多数机器人和蜘蛛在没有JavaScript的情况下运行,并且会看到没有电子邮件的HTML。

理解您所问问题的方法是:当页面呈现给请求它的客户端时,它将是什么样子?电子邮件收集器请求您的页面并对其进行解析以查找电子邮件地址。

如果您想保护您的地址不受爬虫的攻击,请使用某种形式的联系人表单向您发送邮件,而不会暴露您的电子邮件地址。

如果您想向读者提供您的地址,而不是向爬虫提供,T.J. Schuck建议在页面加载后通过JavaScript注入它是有意义的,但请确保您是由JS代码中的几个片段构建的-脚本源中完整的地址仍然可能被拾取。