网页抓取 加密html(几种加密和混淆的反垃圾邮件手段,你知道吗?)

优采云 发布时间: 2021-09-18 20:19

  网页抓取 加密html(几种加密和混淆的反垃圾邮件手段,你知道吗?)

  邮箱中总是有很多垃圾邮件,这让我不得不重新检查网页上发布的电子邮件地址。为了避免垃圾邮件,我特意将@替换为#。也许十年前这是一个好方法,但随着神经网络和新的机器学习算法的发展,这种小方法也面临着失败的风险,因为它们大多修改电子邮件地址的“@”符号,通过正则表达式过滤和匹配特征值,例如,可疑电子邮件地址(如、)的特征仍然可以捕获电子邮件地址,因此我们需要在将电子邮件发布到HTML网页之前对其进行加密和混淆

  接下来,我将介绍几种反垃圾邮件的加密和混淆方法作为示例

  1.生成图片

  使用传统的图灵测试验证码将阻止采集电子邮件地址生成图片。有许多方法可以通过使用机器无法识别的特征来区分他人和机器。除了高级Photoshop,您甚至可以使用系统带来的绘图工具。此外,如果你想偷懒,有一些在线工具可以帮助你,例如,排名前十的网站可以将你的电子邮件地址转换成图像

  当然,生成图片并不是万无一失的。有理由相信,由于基于图片的验证码可以被机器识别和破解,因此基于相同技术的电子邮件地址将不再不可避免。特别是随着OCR技术的逐渐发展和成熟,采集程序可以对整个网页进行OCR,最终提取出所需的内容,因此,我们还需要将图片生成的电子邮件地址与噪音和干扰线混淆。有关详细信息,请参阅如何防止验证码被识别的相关内容

  然而,经过这样的设计,我们的电子邮件地址对那些真正需要它的人变得不那么友好,人们更难获得准确的电子邮件地址

  2、替换关键符号

  我们知道许多爬虫通过@feature符号捕获电子邮件地址。正如我文章在开始时所说,用其他符号替换此符号将大大降低我们的电子邮件被捕获的概率。当然,这一点的缺点是,除非它给用户一个提示,否则需要解释这是一个电子邮件地址,例如John#或John{a},当然,智能电子邮件捕获软件可以自动免受这些技巧的影响。也可以通过判断域名来判断这是一个电子邮件地址。因此,用一个非常特殊的符号替换@也是一种生存方式。对于这种替换方法,更重要的是将电子邮件地址转换为一个句子,如的John,它似乎应该更安全,但它也给真正需要此电子邮件地址的用户带来了一点麻烦

  3、使用JavaScript

  JavaScript(简称JS)通常被用作嵌入web页面中的小脚本,以提供更丰富的交互和应用程序。我们通过JS混淆电子邮件地址,然后用document.write或innerHTML输出它。优点是大多数爬虫程序无法在网页中执行脚本。它们只擅长捕获静态文本,因此,不必担心电子邮件地址泄漏到爬虫程序。此外,对于最终用户,通过浏览器的解释,他们会看到一个完整的电子邮件地址,这具有良好的用户体验。但是,这种方法有一个致命的弱点,即如果用户的浏览器不支持脚本,电子邮件地址将无法正常显示,尽管这种情况很少见

  一个典型的例子如下。当然,有很多不同的实现,比如PHP hide_uu我不会在这里介绍更多关于电子邮件的内容

  

var username = "john";

var hostname = "example.com";

document.write(username + "@" + hostname);

  特别值得一提的是rot13算法的应用。Rot13转13位。在最终分析中,它将字母表的第一个位置连接成一个环,并将要编码的字母映射到要旋转的13位字母,如下图所示:

  

  对于PHP,有一个函数str_;Rot13可以直接使用,然后根据其算法通过反转获得加密前的文本。通常使用以下JS代码:

  

document.write("Fraq n zrffntr".replace(/[a-zA-Z]/g,

function(c){return String.fromCharCode((c=(c=c.charCodeAt(0)+13)?c:c-26);}));

  上述代码将被解码为以下HTML:

  

Send a message

  4、将HTML与CSS混淆

  当然,除了使用JavaScript,我们还可以使用HTML或CSS的一些技巧来混淆HTML注释。HTML收录注释,不会通过浏览器呈现给最终用户。然后,我们可以充分利用此功能创建电子邮件地址,如下所示:

  

john@example.com

  浏览器不会显示它,但足以混淆机器爬虫的爬行

  同样,结合CSS显示:无,我们仍然可以得到以下类似方法的混淆:

  

jo@hn@@exam@ple.com

  类似地,显示:没有一个CSS注定不会显示其中收录的文本,因此最终显示的也是完整的电子邮件地址

  对于CSS,还有另一种避免爬行的方法,即使用CSS文本显示顺序的特征,例如:

  

moc.noitpecni@kcik

  CSS代码如下所示:

  

.obfuscate { unicode-bidi: bidi-override; direction: rtl; }

  首先,文本被我们颠倒了。如果你想还原它,你可以在没有JS帮助的情况下通过CSS再次将其反转,以获得正确的文本。当然,这种方法有一个缺陷,即用户选择复制电子邮件地址的顺序仍然是相反的

  最后,在反垃圾邮件爬虫采集方法方面,我们充分发挥了网民的智慧,涌现出了各种优秀的实现方案。由于篇幅有限,我不一一介绍。事实上,没有绝对的安全。最安全的方法是没有电子邮件地址。你怎么说?也就是说,使用contact from可以让需要与您联系的人通过表单直接向您发送电子邮件,从而避免泄露电子邮件地址。在线联系人表单有很多开源代码。这是我博客考虑的最后一种方式。现在,您可以通过右上角的“关于我”找到此链接并向我发送消息

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线