Spambots和输入表格

问题描述 投票:9回答:4

我在我的网站上有一个paypal表格,其中包括我的电子邮件:

<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="[email protected]">

我想知道垃圾邮件是否可以扫描这个隐藏字段以便我的电子邮件向我发送垃圾邮件,如果是这样,我该如何防止这种情况?

html forms security spam-prevention
4个回答
5
投票

虽然你无法真正阻止垃圾邮件,但有一些事情可以帮助你:

许多垃圾邮件往往会在您的代码中查找@符号,因此您可以使用以下替代方法:

  • 有人email-at-example.com
  • youremail(AT)example.com
  • youremail例如DOT com

您还可以使用ASCII字符代码,这些代码是某些符号的代码。对于@符号,代码为&#64

虽然它会伪装你的@符号,但许多垃圾邮件程序可以检测到ASCII码。

还有一些其他选项,如添加一些javascript,使用图像,使用机器人TXT文件,但您可以单击下面的链接以获取更多详细信息和想法。

您可以查看更多详细信息和想法,以保护您的电子邮件免受垃圾邮件here的影响


2
投票

恕我直言,最好的方法是通过服务器上的CGI进程代理响应,而不是在HTML中公开电子邮件地址。对于大多数人来说,这是一个非首发,作为一个后备,我会在页面的某个地方设置JS的电子邮件地址字段,而不是仅仅为了解析最基本的刮刀而预先填充。


2
投票

最好的办法是在文档中的某处放置一个模糊值,然后使用js将它放在正确的位置。

例如:

<script>
    var wtf = 'm'+'a'+'i'+'l'+'&'+'#'+'6'+'4'+';'+'s'+'a'+'&'+'#'+'1'+'0'+'9'+';'+'&'+'#'+'1'+'1'+'2'+';'+'l'+'e'+'m'+'&'+'#'+'9'+'7'+';'+'i'+'l'+'&'+'#'+'4'+'6'+';'+'c'+'o'+'m';
    // sets wtf to '[email protected]'

    $('#yourfield').val(wtf); // sets value of a field to wtf (assumes jQuery)
</script>

这应该防止正则表达式和类似用于搜索电子邮件地址以捕获地址。也就是说,这不会欺骗定制的解析器。

为了欺骗定制的解析器,您需要一些服务器端功能来混淆js / html代码。这些目标是隐藏任何可用于字符串解析的句柄。例如:

  • 随机字段ID /名称/位置
  • 随机js变量名
  • 随机混淆: 有时使用字符的ASCII码, 有时使用角色, 将随机数字符放在同一个字符串中,例如'M' + '的AI' + '\&#X6C' 使用不同的连接功能,例如String.join(),+和Array.reduce() 等等

这些技巧应该阻止大多数脚本小子


1
投票

机器人可以通过开发人员工具访问代码(按F12)或以chrome检查。如果你真的想要阻止机器人,垃圾邮件发送者等等,你应该使用另一个免费电子邮件(如mail.com)作为价值。或者,如果您愿意,可以在电子邮件中使用重型垃圾邮件拦截器。

© www.soinside.com 2019 - 2024. All rights reserved.