
Sign up to save your podcasts
Or


Hacker News 每日播报,为您带来 AdGuard 揭露的神秘施压事件、Mozilla 的 SSL 配置神器、AMD 对抗 CUDA 的新武器、绕过 ASLR 的精妙攻击、TCP 协议的深度剖析,以及与网络爬虫斗智斗勇的趣闻等一系列精彩内容。
AdGuard 团队最近揭露了一场针对知名网页存档服务 Archive.today 的可疑施压活动。这起事件如同一部科技悬疑剧,充满了匿名威胁与精心策划的虚假指控。
一个自称“Web Abuse Association Defense (WAAD)”的法国组织,以 Archive.today 托管非法内容为由,要求 AdGuard DNS 封锁其域名。起初是请求,但很快升级为法律威胁,并援引了法国的《数字经济信任法》(LCEN)。
AdGuard 作为 DNS 服务商,对此类内容审查要求感到不寻 ઉ常,于是展开了深入调查。他们发现:
AdGuard 最终得出结论,这是一场“极其可疑”的恶意施压活动,并计划向法国警方报案。整起事件发生在 FBI 正在调查 Archive.today 的敏感时期,不禁让人对两者之间的联系产生联想。
这起事件引发了关于网络审查和言论自由的广泛讨论。将儿童性虐待材料(CSAM)等严重指控武器化,用以打击目标服务,是一种极其恶劣的策略。攻击者有时会自己上传非法内容到目标网站,然后再进行举报,以此胁迫基础设施服务商。这种行为无疑触及了道德底线。
AdGuard 在面对压力时没有盲目顺从,而是选择深入调查并公开真相,其尽职尽责的态度赢得了广泛赞誉。这也暴露出现有法律框架(如 LCEN 和 DMCA)的缺陷,它们有时不仅无法解决根本问题,反而可能被滥用,成为打压异己或保护自身利益的工具。
对于开发者而言,手动配置服务器的 SSL/TLS 既复杂又容易出错。Mozilla 推出的 SSL 配置生成器 (SSL Configuration Generator) 正是为了解决这一痛点,它能帮助用户为各种服务器软件一键生成安全、可靠的配置。
这款工具极大地降低了部署 HTTPS 的门槛,推广了安全最佳实践。对于不熟悉底层加密细节的开发者来说,它避免了因配置失误导致的安全漏洞,堪称神器。
然而,过度依赖此类工具也可能带来一些问题。开发者可能会因此忽视对底层原理的学习,当遇到复杂问题时,排查起来会更加困难。在追求自动化的同时,如何平衡便利性与对底层技术的深刻理解,是一个值得思考的问题。
来自斯坦福 Hazy Research 的新项目 HipKittens,正试图打破 NVIDIA 在 AI 计算领域的“CUDA 护城河”。这是一套专为 AMD GPU 设计的高性能 C++ 编程原语,旨在充分释放 AMD 硬件的强大潜力。
尽管 AMD 最新的 GPU 在硬件参数上已能与 NVIDIA 的顶级产品相媲美,但其软件生态的滞后严重限制了性能发挥。现有的 AMD 软件栈在运行 AI 核心算法时,性能远未达到理想状态,顶尖的 AI 内核往往需要专家手写汇编代码进行优化,开发难度极大。
HipKittens 通过借鉴其在 NVIDIA GPU 上的成功经验(ThunderKittens 项目),为 AMD GPU 量身定制了一套“有主见的编程原语”。它通过抽象的“瓦片 (Tile)”概念,简化了高性能内核的开发,同时针对 AMD 硬件的特性进行了深度优化。
实验结果令人振奋:仅用约 500 行代码,HipKittens 实现的注意力内核在性能上就超越了所有基线,包括那些手写汇编优化的版本。这预示着,开发者或许不再需要为了追求极致性能而深入汇编语言的泥潭。
AMD 在 AI 领域的追赶步伐正在加快。许多迹象表明,AMD 的软件生态正在好转,大部分主流应用已能在其硬件上顺利运行。随着 AI 算法(如 Transformer)的逐渐收敛,竞争者只需针对性地优化少数关键算法,就有可能撼动 NVIDIA 的市场地位。
然而,“CUDA 护城河”依然深厚。NVIDIA 数十年积累的庞大软件库和成熟的生态系统,是其难以被轻易取代的关键。同时,也有声音指出 AMD 内部可能存在软件投入不足、薪酬体系缺乏竞争力等问题,这些都可能成为其追赶路上的障碍。无论如何,一个强大的非 NVIDIA 选项对整个行业的健康发展至关重要。
在微软对 Linux 平台官方支持不佳的背景下,一个名为 teams-for-linux 的非官方开源客户端,为 Linux 用户提供了宝贵的替代方案。
这个项目基于 Electron,本质上是 Teams 网页版的封装,但在此基础上增加了许多桌面应用特有的功能和改进,例如:
这款非官方客户端的流行,恰恰反衬出用户对官方 Teams 客户端的普遍不满。无论是哪个平台,官方 Teams 都因其性能低下、资源消耗巨大、用户体验糟糕和层出不穷的 Bug 而备受诟病。许多人表示,切换聊天迟钝、通知延迟、屏幕共享卡顿等问题已是家常便饭。
有趣的是,一个反复出现的观点是,Teams 的网页版(或作为 PWA 应用)在 Linux 上的体验反而远胜于其所谓的“原生”应用。它运行流畅,核心功能稳定,尤其是在 Wayland 环境下表现良好。这使得封装网页版的非官方客户端,在弥补了 PWA 的一些不足(如系统托盘通知)后,成为了许多用户的首选。
modzero 的一篇技术文章详细展示了如何在没有地址信息泄露的情况下,绕过地址空间布局随机化 (ASLR) 保护,并在一台现代物联网摄像头上实现远程代码执行 (RCE)。
研究人员在一款网络摄像头中发现了一个经典的栈缓冲区溢出漏洞。尽管设备启用了 NX(数据执行保护)和 ASLR,但存在两个关键弱点:
攻击的核心挑战在于,程序依赖的 libc 库受 ASLR 保护,其地址是随机的。研究人员利用了程序的全局偏移表 (GOT) 和程序链接表 (PLT),构建了一条精巧的返回导向编程 (ROP) 链,实现了“一击必中”的攻击:
这篇报告引发了关于“绕过 ASLR”定义的讨论。一种观点认为,由于主程序本身未受 ASLR 保护,其 GOT 表地址是静态的,这更像是利用了 ASLR 保护的缺失,而非真正的“绕过”。然而,另一种观点则认为,攻击者在不知道 libc 基址的情况下,成功定位并调用了其中的函数,这确实解决了地址随机化带来的障碍,可以被视为对 ASLR 的一种有效规避。
备受赞誉的经典间谍射击游戏《无人永生》(No One Lives Forever) 迎来了其 25 周年纪念日,但一个可悲的现实是,玩家至今仍无法通过任何合法渠道购买到这款游戏。
问题的根源在于其复杂的版权归属。据信,该游戏的 IP 权利被分割在华纳兄弟、动视和 20 世纪福克斯(现属迪士尼)三家巨头之间。然而,这些公司自己也无法确定谁究竟拥有什么权利,甚至找不到当年的合同。
当有公司(如 Nightdive Studios)试图重制并重新发行这款游戏时,这三家公司都采取了“宁可错杀,不可放过”的态度,声称自己“可能拥有权利并可能因此提起诉讼”,但又无法提供证据。这种法律上的不确定性足以吓退任何潜在的发行商。
因此,这款经典之作陷入了法律的无人区,成为了事实上的“弃用软件”(abandonware)。在无法合法购买的情况下,通过非官方渠道下载成为了玩家体验这款游戏的唯一途径。
《无人永生》的困境凸显了现有版权制度的荒谬之处,尤其是在数字时代。过长的版权保护期限、复杂的企业兼并以及公司内部的官僚主义,共同导致了珍贵的文化遗产被困在法律迷宫中。
这引发了对版权改革的强烈呼吁。许多人认为,应引入“使用或失去”(use it or lose it) 的原则,如果版权所有者在一定期限内不积极利用其 IP,则应将其释放到公共领域。此外,建立更清晰的版权登记和续期制度,也能迫使权利人认真维护其 IP,避免类似僵局的发生。当版权制度从鼓励创作的工具,沦为阻碍文化传播和保存的枷锁时,它就违背了其设立的初衷。
我们每天使用的互联网,其稳定流畅的体验在很大程度上要归功于一个默默无闻的英雄——传输控制协议 (TCP)。一篇深入浅出的文章带领我们重温了 TCP 的精妙设计,以及它如何在一个不可靠的网络之上构建起可靠的数据传输。
TCP 的核心任务是在网络边缘(即用户的设备上)实现可靠性,从而让中间的网络设备(如路由器)可以保持简单和高效。它通过序列号、确认号、校验和以及重传机制,解决了数据包丢失、乱序和损坏等问题。
文章重点介绍了 TCP 的两大核心机制:
TCP 的设计被认为是网络工程的典范。如果从“在不可靠的数据报之上构建可靠数据流”这一基本问题出发,最终的解决方案很可能与 TCP 非常相似。其将拥塞控制算法置于终端设备而非网络协议本身的设计,赋予了其极大的灵活性,使其能够随着网络环境的发展而不断进化。
然而,TCP 也并非完美。其“队头阻塞”(head-of-line blocking) 问题在处理网页等多流应用时效率低下。此外,它对移动网络中 IP 地址变化的支持不佳,也缺乏原生的安全机制。
这些局限性催生了新的协议,如 SCTP 和 QUIC。特别是基于 UDP 的 QUIC,它在用户空间实现了多路复用、更快的连接建立和灵活的拥塞控制,被视为 TCP 在现代网络环境下的有力继承者。
创造一门新的编程语言,是许多开发者的梦想。这个话题背后,既有对技术极致的追求,也有对现实挑战的深刻认知。
设计语言的动机多种多样。对许多人来说,这是深入理解编译器、解析器和编程语言理论的最佳实践。从零开始构建一个解释器或编译器,能带来无与伦比的学习体验和成就感。
另一些人则是为了解决特定领域的问题。例如,为了在特定环境中安全地执行动态代码,或者为某种新的计算范式设计更贴合的表达方式。当然,“纯粹为了好玩”也是一个完全正当且重要的理由,它驱动了许多伟大的开源项目。
将一个语言项目从玩具变为实用的工具,是一项巨大的工程。现代编程语言的竞争异常激烈,一门新语言不仅需要优秀的语法和语义,还需要一个完整的生态系统,包括强大的编译器、标准库、包管理器、IDE 支持,甚至是 AI 集成。
为语言项目筹集资金也极为困难。成功的语言往往需要大型科技公司的支持,才能持续发展并建立起用户社区。否则,许多新语言最终会陷入“诡异谷”——有一定用户,但不足以形成强大的生态,反而增加了技术碎片化。
一篇 2013 年的经典文章再次引发关注,它探讨了 Haskell 中两个强大而神秘的函数 loeb 和 moeb,它们能够优雅地实现“奇异循环”,处理自引用和相互依赖的计算。
loeb 函数的实现异常简洁,但其工作原理却十分深奥。它能计算一个结果,而这个结果的定义又依赖于它自身。这听起来像是一个悖论,但在 Haskell 的惰性求值 (laziness) 机制下,这种自引用是完全可行的。
文章通过一个精彩的例子——构建电子表格——展示了 loeb 的威力。在电子表格中,每个单元格的值都可以依赖于其他单元格。例如,总价等于价格乘以税率,而总计又是所有总价的和。这些复杂的循环依赖关系,可以通过 loeb 一次性解决,得出所有单元格的正确值。这本质上是固定点组合子 (fixed-point combinator) 的一种推广应用。
文章还介绍了 moeb 函数,它是对 loeb 的进一步泛化,甚至可以看作是大家熟悉的 fix 函数的泛化。
这个话题展示了函数式编程在处理复杂依赖关系时的独特优势。在实际应用中,loeb 这样的工具可以用于解决编译器中标签地址的解析等问题。然而,如何确保这种“奇异循环”能够终止,避免无限循环,是将其应用于实际工程时必须仔细考虑的关键问题。
面对日益猖獗的网络爬虫和恶意机器人,一些网站管理员选择不再被动防御,而是主动“反击”,用创造性的方式与这些不速之客斗智斗勇。
一位博客作者分享了他的反击策略。他发现,无论是用于训练大语言模型的 AI 爬虫,还是扫描漏洞的恶意机器人,都对他的小型网站造成了不小的负担。于是,他决定给这些贪婪的爬虫提供源源不断的“垃圾数据”。
他的方法包括:
为了避免误伤搜索引擎等“友好”爬虫,他为所有陷阱页面都添加了 noindex, nofollow 标记。
这篇有趣的博文引发了关于如何对付机器人的热烈讨论,各种策略层出不穷:
这场人与机器人的攻防战,也反映出关于网络抓取伦理的持续辩论。尊重 robots.txt、不给服务器造成负担的“好公民”爬虫,与那些消耗资源、寻找漏洞甚至窃取内容用于商业目的的“恶意”爬虫之间,界限正变得越来越清晰。
相关链接:
By Agili 的 Hacker PodcastHacker News 每日播报,为您带来 AdGuard 揭露的神秘施压事件、Mozilla 的 SSL 配置神器、AMD 对抗 CUDA 的新武器、绕过 ASLR 的精妙攻击、TCP 协议的深度剖析,以及与网络爬虫斗智斗勇的趣闻等一系列精彩内容。
AdGuard 团队最近揭露了一场针对知名网页存档服务 Archive.today 的可疑施压活动。这起事件如同一部科技悬疑剧,充满了匿名威胁与精心策划的虚假指控。
一个自称“Web Abuse Association Defense (WAAD)”的法国组织,以 Archive.today 托管非法内容为由,要求 AdGuard DNS 封锁其域名。起初是请求,但很快升级为法律威胁,并援引了法国的《数字经济信任法》(LCEN)。
AdGuard 作为 DNS 服务商,对此类内容审查要求感到不寻 ઉ常,于是展开了深入调查。他们发现:
AdGuard 最终得出结论,这是一场“极其可疑”的恶意施压活动,并计划向法国警方报案。整起事件发生在 FBI 正在调查 Archive.today 的敏感时期,不禁让人对两者之间的联系产生联想。
这起事件引发了关于网络审查和言论自由的广泛讨论。将儿童性虐待材料(CSAM)等严重指控武器化,用以打击目标服务,是一种极其恶劣的策略。攻击者有时会自己上传非法内容到目标网站,然后再进行举报,以此胁迫基础设施服务商。这种行为无疑触及了道德底线。
AdGuard 在面对压力时没有盲目顺从,而是选择深入调查并公开真相,其尽职尽责的态度赢得了广泛赞誉。这也暴露出现有法律框架(如 LCEN 和 DMCA)的缺陷,它们有时不仅无法解决根本问题,反而可能被滥用,成为打压异己或保护自身利益的工具。
对于开发者而言,手动配置服务器的 SSL/TLS 既复杂又容易出错。Mozilla 推出的 SSL 配置生成器 (SSL Configuration Generator) 正是为了解决这一痛点,它能帮助用户为各种服务器软件一键生成安全、可靠的配置。
这款工具极大地降低了部署 HTTPS 的门槛,推广了安全最佳实践。对于不熟悉底层加密细节的开发者来说,它避免了因配置失误导致的安全漏洞,堪称神器。
然而,过度依赖此类工具也可能带来一些问题。开发者可能会因此忽视对底层原理的学习,当遇到复杂问题时,排查起来会更加困难。在追求自动化的同时,如何平衡便利性与对底层技术的深刻理解,是一个值得思考的问题。
来自斯坦福 Hazy Research 的新项目 HipKittens,正试图打破 NVIDIA 在 AI 计算领域的“CUDA 护城河”。这是一套专为 AMD GPU 设计的高性能 C++ 编程原语,旨在充分释放 AMD 硬件的强大潜力。
尽管 AMD 最新的 GPU 在硬件参数上已能与 NVIDIA 的顶级产品相媲美,但其软件生态的滞后严重限制了性能发挥。现有的 AMD 软件栈在运行 AI 核心算法时,性能远未达到理想状态,顶尖的 AI 内核往往需要专家手写汇编代码进行优化,开发难度极大。
HipKittens 通过借鉴其在 NVIDIA GPU 上的成功经验(ThunderKittens 项目),为 AMD GPU 量身定制了一套“有主见的编程原语”。它通过抽象的“瓦片 (Tile)”概念,简化了高性能内核的开发,同时针对 AMD 硬件的特性进行了深度优化。
实验结果令人振奋:仅用约 500 行代码,HipKittens 实现的注意力内核在性能上就超越了所有基线,包括那些手写汇编优化的版本。这预示着,开发者或许不再需要为了追求极致性能而深入汇编语言的泥潭。
AMD 在 AI 领域的追赶步伐正在加快。许多迹象表明,AMD 的软件生态正在好转,大部分主流应用已能在其硬件上顺利运行。随着 AI 算法(如 Transformer)的逐渐收敛,竞争者只需针对性地优化少数关键算法,就有可能撼动 NVIDIA 的市场地位。
然而,“CUDA 护城河”依然深厚。NVIDIA 数十年积累的庞大软件库和成熟的生态系统,是其难以被轻易取代的关键。同时,也有声音指出 AMD 内部可能存在软件投入不足、薪酬体系缺乏竞争力等问题,这些都可能成为其追赶路上的障碍。无论如何,一个强大的非 NVIDIA 选项对整个行业的健康发展至关重要。
在微软对 Linux 平台官方支持不佳的背景下,一个名为 teams-for-linux 的非官方开源客户端,为 Linux 用户提供了宝贵的替代方案。
这个项目基于 Electron,本质上是 Teams 网页版的封装,但在此基础上增加了许多桌面应用特有的功能和改进,例如:
这款非官方客户端的流行,恰恰反衬出用户对官方 Teams 客户端的普遍不满。无论是哪个平台,官方 Teams 都因其性能低下、资源消耗巨大、用户体验糟糕和层出不穷的 Bug 而备受诟病。许多人表示,切换聊天迟钝、通知延迟、屏幕共享卡顿等问题已是家常便饭。
有趣的是,一个反复出现的观点是,Teams 的网页版(或作为 PWA 应用)在 Linux 上的体验反而远胜于其所谓的“原生”应用。它运行流畅,核心功能稳定,尤其是在 Wayland 环境下表现良好。这使得封装网页版的非官方客户端,在弥补了 PWA 的一些不足(如系统托盘通知)后,成为了许多用户的首选。
modzero 的一篇技术文章详细展示了如何在没有地址信息泄露的情况下,绕过地址空间布局随机化 (ASLR) 保护,并在一台现代物联网摄像头上实现远程代码执行 (RCE)。
研究人员在一款网络摄像头中发现了一个经典的栈缓冲区溢出漏洞。尽管设备启用了 NX(数据执行保护)和 ASLR,但存在两个关键弱点:
攻击的核心挑战在于,程序依赖的 libc 库受 ASLR 保护,其地址是随机的。研究人员利用了程序的全局偏移表 (GOT) 和程序链接表 (PLT),构建了一条精巧的返回导向编程 (ROP) 链,实现了“一击必中”的攻击:
这篇报告引发了关于“绕过 ASLR”定义的讨论。一种观点认为,由于主程序本身未受 ASLR 保护,其 GOT 表地址是静态的,这更像是利用了 ASLR 保护的缺失,而非真正的“绕过”。然而,另一种观点则认为,攻击者在不知道 libc 基址的情况下,成功定位并调用了其中的函数,这确实解决了地址随机化带来的障碍,可以被视为对 ASLR 的一种有效规避。
备受赞誉的经典间谍射击游戏《无人永生》(No One Lives Forever) 迎来了其 25 周年纪念日,但一个可悲的现实是,玩家至今仍无法通过任何合法渠道购买到这款游戏。
问题的根源在于其复杂的版权归属。据信,该游戏的 IP 权利被分割在华纳兄弟、动视和 20 世纪福克斯(现属迪士尼)三家巨头之间。然而,这些公司自己也无法确定谁究竟拥有什么权利,甚至找不到当年的合同。
当有公司(如 Nightdive Studios)试图重制并重新发行这款游戏时,这三家公司都采取了“宁可错杀,不可放过”的态度,声称自己“可能拥有权利并可能因此提起诉讼”,但又无法提供证据。这种法律上的不确定性足以吓退任何潜在的发行商。
因此,这款经典之作陷入了法律的无人区,成为了事实上的“弃用软件”(abandonware)。在无法合法购买的情况下,通过非官方渠道下载成为了玩家体验这款游戏的唯一途径。
《无人永生》的困境凸显了现有版权制度的荒谬之处,尤其是在数字时代。过长的版权保护期限、复杂的企业兼并以及公司内部的官僚主义,共同导致了珍贵的文化遗产被困在法律迷宫中。
这引发了对版权改革的强烈呼吁。许多人认为,应引入“使用或失去”(use it or lose it) 的原则,如果版权所有者在一定期限内不积极利用其 IP,则应将其释放到公共领域。此外,建立更清晰的版权登记和续期制度,也能迫使权利人认真维护其 IP,避免类似僵局的发生。当版权制度从鼓励创作的工具,沦为阻碍文化传播和保存的枷锁时,它就违背了其设立的初衷。
我们每天使用的互联网,其稳定流畅的体验在很大程度上要归功于一个默默无闻的英雄——传输控制协议 (TCP)。一篇深入浅出的文章带领我们重温了 TCP 的精妙设计,以及它如何在一个不可靠的网络之上构建起可靠的数据传输。
TCP 的核心任务是在网络边缘(即用户的设备上)实现可靠性,从而让中间的网络设备(如路由器)可以保持简单和高效。它通过序列号、确认号、校验和以及重传机制,解决了数据包丢失、乱序和损坏等问题。
文章重点介绍了 TCP 的两大核心机制:
TCP 的设计被认为是网络工程的典范。如果从“在不可靠的数据报之上构建可靠数据流”这一基本问题出发,最终的解决方案很可能与 TCP 非常相似。其将拥塞控制算法置于终端设备而非网络协议本身的设计,赋予了其极大的灵活性,使其能够随着网络环境的发展而不断进化。
然而,TCP 也并非完美。其“队头阻塞”(head-of-line blocking) 问题在处理网页等多流应用时效率低下。此外,它对移动网络中 IP 地址变化的支持不佳,也缺乏原生的安全机制。
这些局限性催生了新的协议,如 SCTP 和 QUIC。特别是基于 UDP 的 QUIC,它在用户空间实现了多路复用、更快的连接建立和灵活的拥塞控制,被视为 TCP 在现代网络环境下的有力继承者。
创造一门新的编程语言,是许多开发者的梦想。这个话题背后,既有对技术极致的追求,也有对现实挑战的深刻认知。
设计语言的动机多种多样。对许多人来说,这是深入理解编译器、解析器和编程语言理论的最佳实践。从零开始构建一个解释器或编译器,能带来无与伦比的学习体验和成就感。
另一些人则是为了解决特定领域的问题。例如,为了在特定环境中安全地执行动态代码,或者为某种新的计算范式设计更贴合的表达方式。当然,“纯粹为了好玩”也是一个完全正当且重要的理由,它驱动了许多伟大的开源项目。
将一个语言项目从玩具变为实用的工具,是一项巨大的工程。现代编程语言的竞争异常激烈,一门新语言不仅需要优秀的语法和语义,还需要一个完整的生态系统,包括强大的编译器、标准库、包管理器、IDE 支持,甚至是 AI 集成。
为语言项目筹集资金也极为困难。成功的语言往往需要大型科技公司的支持,才能持续发展并建立起用户社区。否则,许多新语言最终会陷入“诡异谷”——有一定用户,但不足以形成强大的生态,反而增加了技术碎片化。
一篇 2013 年的经典文章再次引发关注,它探讨了 Haskell 中两个强大而神秘的函数 loeb 和 moeb,它们能够优雅地实现“奇异循环”,处理自引用和相互依赖的计算。
loeb 函数的实现异常简洁,但其工作原理却十分深奥。它能计算一个结果,而这个结果的定义又依赖于它自身。这听起来像是一个悖论,但在 Haskell 的惰性求值 (laziness) 机制下,这种自引用是完全可行的。
文章通过一个精彩的例子——构建电子表格——展示了 loeb 的威力。在电子表格中,每个单元格的值都可以依赖于其他单元格。例如,总价等于价格乘以税率,而总计又是所有总价的和。这些复杂的循环依赖关系,可以通过 loeb 一次性解决,得出所有单元格的正确值。这本质上是固定点组合子 (fixed-point combinator) 的一种推广应用。
文章还介绍了 moeb 函数,它是对 loeb 的进一步泛化,甚至可以看作是大家熟悉的 fix 函数的泛化。
这个话题展示了函数式编程在处理复杂依赖关系时的独特优势。在实际应用中,loeb 这样的工具可以用于解决编译器中标签地址的解析等问题。然而,如何确保这种“奇异循环”能够终止,避免无限循环,是将其应用于实际工程时必须仔细考虑的关键问题。
面对日益猖獗的网络爬虫和恶意机器人,一些网站管理员选择不再被动防御,而是主动“反击”,用创造性的方式与这些不速之客斗智斗勇。
一位博客作者分享了他的反击策略。他发现,无论是用于训练大语言模型的 AI 爬虫,还是扫描漏洞的恶意机器人,都对他的小型网站造成了不小的负担。于是,他决定给这些贪婪的爬虫提供源源不断的“垃圾数据”。
他的方法包括:
为了避免误伤搜索引擎等“友好”爬虫,他为所有陷阱页面都添加了 noindex, nofollow 标记。
这篇有趣的博文引发了关于如何对付机器人的热烈讨论,各种策略层出不穷:
这场人与机器人的攻防战,也反映出关于网络抓取伦理的持续辩论。尊重 robots.txt、不给服务器造成负担的“好公民”爬虫,与那些消耗资源、寻找漏洞甚至窃取内容用于商业目的的“恶意”爬虫之间,界限正变得越来越清晰。
相关链接: