Php 如何保护手机号码不受机器人攻击

Php 如何保护手机号码不受机器人攻击,php,jquery,Php,Jquery,我想要一个显示在公共页面上的电话号码将受到保护。示例将电话号码字符转换为HTML实体,机器人程序无法获取纯文本中的号码。让我知道诀窍。当然,用文字而不是数字打印电话号码…一些想法 将电话号码显示为图像 使用javascript创建和显示电话号码 在数字之间插入html标记(例如[span]),这在视觉上没有区别,但会使机器人更难识别电话号码 我想到的第一件事是渲染图像 使用Javascript混淆 使用php函数进行模糊处理 这是一个……暂时的想法,尽管我不确定它有多实际: <span

我想要一个显示在公共页面上的电话号码将受到保护。示例将电话号码字符转换为HTML实体,机器人程序无法获取纯文本中的号码。让我知道诀窍。

当然,用文字而不是数字打印电话号码…

一些想法

  • 将电话号码显示为图像
  • 使用javascript创建和显示电话号码
  • 在数字之间插入html标记(例如[span]),这在视觉上没有区别,但会使机器人更难识别电话号码
      • 我想到的第一件事是渲染图像
      • 使用Javascript混淆
      • 使用php函数进行模糊处理

      这是一个……暂时的想法,尽管我不确定它有多实际:

      <span class="protectedNumber" title="01234567890"></span>
      


      编辑,回应评论中的“跨浏览器”问题,添加jQuery选项以帮助那些无法处理css生成内容的浏览器:

      $(document).ready(
          function(){
             $('.protectedNumber').each(
                 function(){
                     $(this).text('Phone number: ' + $(this).attr('title'));
                 }); 
          });
      

      尝试使用ASCII写入数字:

      
      112
      
      创建一个数字图像,这将屏蔽大多数机器人,但有些机器人可能有OCR,因此会混淆它

      ie:好的:

      更好:

      第二个1更好,因为与Captcha一样,背景中包含的“噪音”使启用OCR的机器人难以捕获,但人眼可读

      困难的解决方案是使用Captcha或简单的PHP脚本动态创建图片,但在大多数情况下,除非您使用许多不同的方法,否则“更好”的解决方案是上述最简单、最快速的方法,即使在简单的程序(如Paint)中,也可以在5分钟内轻松完成


      对于视力受损者,在音频文件(mp3)中添加一个小链接,如果链接正确,您可以说出数字。因此,它应该可以正常工作。

      我有很小的空间可以写
      零一九三三八四七五
      :P@blur-说真的,要做到这一点并为那些不使用标准浏览器的用户保留一个可访问的站点是很困难的。您需要记住,您在此处所做的任何类型的混淆都可能会对使用屏幕阅读器的用户产生影响。请使用BASE64编码对电话号码进行编码,并显示编码文本以及编码信息。这就是我为了远离机器人(和文盲)所做的:简单而漂亮,但是跨浏览器?我将使用这种方法。谢谢大卫,很好!但是一个好的收割机应该能够收割机号码,因为大多数号码都有一定的长度,以等开头。我想,在你的电话号码上使用captcha图像会更安全。+1用于添加HTML标记。这是一个非常简单的方法,我不确定机器人有多复杂,但它可能会扔掉最基本的机器人。我想机器人很可能会把它转换回来
      $(document).ready(
          function(){
             $('.protectedNumber').each(
                 function(){
                     $(this).text('Phone number: ' + $(this).attr('title'));
                 }); 
          });
      
      <html>
          <body>&#49;&#49;&#50;</body>
      </html>