【问题标题】:Spambots and input forms垃圾邮件程序和输入表单
【发布时间】:2019-02-05 18:25:15
【问题描述】:

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

<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="email@samplemail.com">

我想知道垃圾邮件机器人是否可以扫描我的电子邮件的隐藏字段以向我发送垃圾邮件,如果可以,我该如何防止?

【问题讨论】:

  • 每个人都可以更改隐藏字段的值。永远不要相信表单的任何输入值。
  • 由于相关价值似乎是贝宝付款的目的地,因此任何人都可以将其更改为将钱汇到其他地方而不是订购东西。听起来对 Herrsocke 来说不是问题。

标签: html forms security spam-prevention


【解决方案1】:

虽然您无法真正阻止垃圾邮件机器人,但您可以做一些事情来提供帮助:

许多垃圾邮件机器人倾向于在您的代码中查找 @ 符号,因此您可以使用以下替代方法:

  • youremail-at-example.com

  • youremail(at)example.com

  • yourmail AT 示例 DOT com

您还可以使用 ASCII 字符代码,它是某些符号的代码。对于 @ 符号,代码是 @

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

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

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

【讨论】:

  • 不确定我是否会选择 AT(at)-at- 解决方案,因为垃圾邮件机器人很容易检查字符串是否包含这些字符之一以及是否包含这些字符确实,它可以将它们转换为@
  • 老实说,我不确定,因为我不是这方面的专家,但 (at) 对我来说似乎不错。如果您不喜欢其中任何一个,您可以研究 robots TXT 文件。
【解决方案2】:

恕我直言,最好的方法是通过服务器上的 CGI 进程代理响应,而不是在 HTML 中公开电子邮件地址。对于大多数人来说,这不是一个开始,作为后备,我会在页面的某处使用 JS 设置电子邮件地址字段,而不是仅仅出现预填充,即使是最基本的抓取工具也可以解析出来。

【讨论】:

    【解决方案3】:

    最好的办法是在文档的某处放置一个混淆值,然后使用 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 'mail@samplemail.com'
    
        $('#yourfield').val(wtf); // sets value of a field to wtf (assumes jQuery)
    </script>
    

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

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

    • 随机字段 ID/名称/位置
    • 随机js变量名
    • 随机混淆:
      • 有时使用字符的ASCII码,
      • 有时使用字符,
      • 在同一个字符串中放入随机数字符,例如'm'+'ai'+'\l'
      • 使用不同的连接函数,例如String.join()、+ 和 Array.reduce()

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        相关资源
        最近更新 更多