关于 JavaScript “工作证明(proof of work) “防抓取系统的思考
如今,人们越来越多地使用基于 JavaScript 的“工作证明”系统来应对激进的大语言模型 (LLM) 和其他网络抓取器的问题,在这种系统中,您的网络服务器要求访问客户端运行一些 JavaScript 来解决挑战;其中一个(越来越广泛使用的)系统是 Xe Iaso 的 Anubis。人们对这些系统的评论之一是,大语言模型(LLM)抓取器只会开始花费 CPU 时间来运行这个挑战性 JavaScript,而大语言模型(LLM)抓取器很可能通过入侵机器等手段获得大量 CPU 时间。我的想法之一是,对于大语言模型(LLM)抓取器来说,事情并不像看起来那么简单。
大语言模型(LLM)抓取器是在一个充满敌意的环境中运行的(尽管其操作者可能没有意识到这一点)。在充满敌意的环境中,处理JavaScript工作证明系统并不像简单地运行它那么简单,因为你无法从JavaScript中分辨出JavaScript工作证明系统和其他功能的JavaScript。让你的抓取器运行 JavaScript 意味着它也可以为其他目的运行 JavaScript,例如,有人想利用你的抓取器的 CPU 进行加密货币挖掘,或者只是让你运行 JavaScript,直到你允许它继续运行为止(也许是因为他们已经认识到你是大语言模型(LLM) 抓取器,并想尽可能地浪费你的 CPU)。
大语言模型(LLM)抓取器可以尝试识别JavaScript工作证明系统,但这是徒劳的。其他各方有充分的理由让自己看起来像工作证明系统,而工作证明系统并不一定希望被识别(部分原因是这可能会让大语言模型(LLM)抓取器通过优化主机挑战实现来缩短其JavaScript)。正如垃圾邮件发送者和加密货币挖掘者所证明的那样,盗贼之间没有荣誉可言。如果大语言模型(LLM)抓取器向人们提供免费的计算,就会有人趁机利用它。这使得大语言模型(LLM)抓取器试图选择一个不会将它们从太多网站中排除的JavaScript运行时限制,而网站则可以尝试识别大语言模型(LLM)抓取器,并在发现可疑情况时增加其工作证明难度。
(这可能并不是一个原创的想法,但这个想法在我脑海中盘旋了一段时间。
本文文字及图片出自 A thought on JavaScript "proof of work" anti-scraper systems
共有 210 条讨论
发表回复
你也许感兴趣的:
- 这是 JavaScript 吗?
- 为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?
- JavaScript 的新超能力:显式资源管理
- 为 V8 提个醒: 通过明确的编译提示加快 JavaScript 启动速度
- 【程序员搞笑图片】纯 JavaScript vs. 框架
- JavaScript 框架选择困难症仍在增加
- 【程序员搞笑图片】盒子里有什么?javascript
- Node.js之父ry“摇人”——要求Oracle放弃JavaScript商标
- JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!
- 立即让JavaScript获得自由!JS之父等超8000人喊话Oracle:你们也不用,放手吧!
如果工作量证明系统实际上是一个加密货币矿工,使得访客最终需要为网站托管的内容付费,那么我们是否终于实现了几十年前提出的“为网站提供微支付”概念的可行实现?
> 如果工作量证明系统实际上是一个加密货币矿工,使得访客最终需要为网站托管的内容付费
不确定这将如何运作。如果生成的证明可用于区块链操作,使得网站运营商可通过访客生成的证明获得支付,为何访客不直接保留该证明并自行使用?这样他们将获得全部收益,而网站运营商一无所获。因此该系统毫无意义,访客不如直接本地运行矿机 🙂
这个系统实际上存在了一段时间,它被称为Coinhive。每个访客都会被视为矿池中的一个节点,资源的“信用”会分配给网站所有者。可以预见的是,它主要被黑客用于在高流量网站上注入代码或利用广告网络。
https://krebsonsecurity.com/2018/03/who-and-what-is-coinhive…
该域名现由Troy Hunt所有!
https://www.troyhunt.com/i-now-own-the-coinhive-domain-heres…
看看挖矿池是如何实现的。客户端只能修改区块的一部分,并从那里进行哈希计算。你无法从那里回溯修改原始数据——否则你将无法获得奖励。否则,你可以轻松欺骗挖矿池,将获胜的数字据为己有,同时还能获得部分奖励。
为了确保我理解正确(也可能为他人澄清),因为我对工作量证明系统的理解非常宏观:
当你挖矿一个区块时,你基本上是在打包一堆有意义的数据,然后尝试附加一些填充数据,例如使哈希值的前 N 位为 0。区块中有意义的数据之一是“谁获得奖励?”
如果你独自挖矿,你会将“我”作为奖励获得者写入区块中。但如果你为矿池挖矿,你获得的区块中已经写明“矿池”作为奖励获得者。
因此,我猜矿池会给你一个较小的工作量目标,即一个小于N的值?你基本上是在说“这里有一个区块没有N个前导零,但有M个前导零”,这证明了你为矿池付出的工作量,并使你有权获得相应比例的奖励。
如果你将“谁获得奖励?”从“池”改为“我”,那会改变哈希值。所以你不能事后说“看,有N个前导零!让我把自己替换进去拿奖励……”因为这会导致无效区块。如果你提前将自己设为奖励行,池就不会承认你的“部分”答案。
这样理解对吗?
补充一点,你可以拒绝发放真实奖励。如果有人要求你加入他们的池以加载网页,你可以拒绝提交任何会实际发放奖励的区块。这不会对你有利,但会惩罚他们试图让你为他们消耗资源的行为。
我好奇是否存在防止这种情况的方法。
Coinhive公司曾采用过这种方式,但在其关闭前已停止使用。具体来说,用户需向网站提供一定数量的门罗币哈希值(通常约1,024个),网站会将这些哈希值发送至Coinhive的矿池后才允许用户访问。
这种方法勉强有效,但问题是黑客会通过入侵网站并在其页面中植入Coinhive的矿机来“加密劫持”随机网站。这导致所有人都开始封锁Coinhive的服务器。(此外,从中获得的收益微乎其微——即使是那些通过入侵网站获得数千万页面浏览量的加密劫持者也报告称,整个操作仅赚取了约$40)
如果攻击者仅通过大量工作获得约$40的收益,似乎只要让该方案自行运行至结束,而非在人们因(从你的描述来看)冲动反应而封锁Coinhive前,问题本可自行解决。
不过,我确信可以通过调整让客户端提交更多哈希值,但这样会让攻击行为更加明显。
如果他们没有花掉那$40,现在可能已经赚到数千美元了,因为当时XMR的价格更低。
根据我的理解:为了向矿工提出问题,你需要对计划提交的区块(包含所有拟提交的交易)进行哈希计算。矿工只获得哈希值。要领取奖励,你需要预像(即待提交的区块),而矿工并不拥有该预像。
理论上,你可以监视交易的广播,并猜测(+确认)对应的区块,但这需要你看到池所有者进行的所有交易,并将其按相同顺序排列(这种可能性会随着交易数量的增加而呈指数级增长)。区块中可能还存在其他随机性——其他人可能了解这一点。
编辑:哦,我忘了:区块还包含应将费用发送到的地址。因此,即使你“窃取”了解决方案并将其与区块一起广播,费用仍将发送给池所有者。这是个更严重的问题。
> 为什么访客不应该保留那个证明并自行使用
因为他们做不到,如果网站运营商正确设计了 JavaScript。具体来说:
如果 Alice 访问 Bob 的网站,Bob 会让 Alice 找到一个哈希值,该哈希值的前 20 个字符为 0,对应的比特币区块内容为“将新打印的比特币和交易费用发送给 Bob”。(爱丽丝需要大约2^20次尝试才能找到这样的区块,因此鲍勃选择了20这个数字,使得这些大约2^20次尝试在普通人使用普通网页浏览器和普通设备时能在几秒钟内完成。)
假设实际的比特币区块链需要一个开头有50个零的哈希值,那么每2^30个爱丽丝中会有一个挖出一个有效的区块(按当前比特币价格计算,价值约$300,000)。
如果爱丽丝找到一个带有50个前导零的区块,然后试图修改该区块内容为“将新打印的比特币和交易费用发送给爱丽丝”,她的新区块将拥有不同的哈希值(极不可能包含2^50个前导零),因此网站和区块链均不会接受该区块。
当然,爱丽丝可以在开始搜索前修改区块内容。但如果她找到一个包含20个前导零且内容为“将新铸造的比特币和交易费用发送给爱丽丝”的区块,鲍勃也不会接受该区块以获取其网站的访问权限。爱丽丝唯一能从将比特币发送给自己区块中获得收益的方式,是通过比特币区块链找到一个2^50的区块——此时爱丽丝只是在为自己挖矿,与鲍勃的网站完全无关。
(如果鲍勃认为赢得$300k的概率为十亿分之一太过冒险,他可以选择使用其他工作量证明区块链和/或挖矿池,以获得较低回报但更高概率的方案。)
如果用户自行挖矿后再向网站所有者付款才能访问网站,他们需要支付交易费用并等待高延迟交易确认。交易费用可能远超实际支付金额。
代表网站所有者进行挖矿可完全消除交易需求。
(多余)
我知道这一点。
回复了错误的评论,抱歉
是的,但那样他们就无法获取你的内容了?当然。
其实不然,因为要从系统中提取加密货币需要大量哈希值。虽然你确实是在利用用户的计算能力并获得加密货币报酬,但除非你让用户等待很长时间,否则每页访问你实际上只获得大约十万分之一美分的报酬。
此外,病毒扫描程序和企业网络会讨厌你,因为黑客很可能试图将你使用的库嵌入到其他毫无防备的网站中。
从Google Ads中每页浏览量能实际获得多少收益?我猜应该比一万分之一美分多,但可能也多不了多少。
过去每千次页面浏览量能获得几美分。但距今已超过10年,我对互联网广告收入的细节已不再了解。(此外,这高度依赖于内容、关键词以及最终展示的具体广告等各种上下文细节)
比特币早期曾出现过基于JavaScript的嵌入式挖矿程序
https://web.archive.org/web/20110603143708/http://www.bitcoi…
如果能通过标准化HTTP头部实现这一功能,让机器人仍可使用网站但需为使用付费,那将非常理想。在我看来,这似乎是最佳方案——HTML的本质就是让机器人能够读取,否则我们只能互相发送PDF文件。
我们已经有一个标准化的系统——robots.txt——而AI机器人已经开始忽视它。为什么更多的标准化标头会重要呢?机器人会像今天一样忽视它们,假装成普通用户,并获取内容而不付费。
(另一个次要问题是,AI 机器人对大多数网站几乎没有好处,因此除非你是某个低成本的垃圾内容农场,否则你将有兴趣将价格提高到最大,以便机器人被完全屏蔽。这将使我们回到第一点,即机器人忽略标头)
被搜索引擎收录没有任何好处?
此外,robots.txt 只是建议,而 hashcash 则在服务器端强制执行。我同意人们开始完全忽视它是一场悲剧,但你不能忽视服务器端的行为。
被搜索引擎收录非常有用,但不需要任何过滤——谷歌和其他主要搜索引擎都尊重 robots.txt,使用已知的用户代理,甚至公布 IP 地址。
AI 机器人不是搜索引擎,对网站所有者没有任何好处。这可以非常清楚地看到,因为它们忽略 robots.txt,假装是普通浏览器,并使用多个代理来避免 IP 禁令。
你建议服务器如何区分机器人和人类访客?
它们应该设置恶意位
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/…
…以及必要的检查清单:https://trog.qgl.org/20081217/the-why-your-anti-spam-idea-wo…
形式化并不会改变其被使用的本质。如果它不起作用,就不应该去做;如果它起作用,就应该被形式化。
> 机器人仍然可以使用网站,但它们实际上需要为使用付费。这对我来说似乎是最好的结果
这将使整个互联网变成一个由AI垃圾内容构成的迷宫,这些内容主要供其他机器人消费。人类可能不得不 resort to 发送手写PDF文件以避免彻底被垃圾内容淹没的网络。
与我们现在的情况相比?
是的——情况可能比现状更糟。
目前,广告网络在检测到机器人访问时不会支付费用——因此内容农场倾向于优化那些看似人类的行为。如果人类和机器人访问者通过矿工提供的经济价值相同,那么一切都将改变,更糟糕的是,如果发现机器人由于人类的耐心不足而更具盈利性。
想象一个为机器人访问者优化的互联网,对人类漠不关心。这将是一种针对无脑受众的精致脑腐蚀。
微支付的问题有四点:
1. banner广告更赚钱。这一情况已不再成立,这就是为什么报纸现在都设置了令人讨厌的软付费墙。
2. 当时人们没有为电子商务设置支付渠道。现在这个问题基本解决,至少在美国成年人中是这样。
3. 交易有固定的处理成本,使得任何低于$1的交易都太便宜而不值得进行。这个问题通过批量处理解决了(例如,购买$5的信用额度并逐步消费)。
4. 每次微支付都需要批准,这会产生固定的心理交易成本,超过了单个商品的实际成本。从伦理角度来看,这个问题很难解决。
除了可能[0]的Patreon外,所有这些障碍都证明了微交易作为销售网络内容的手段是致命的。游戏是一个例外,但它们通过淹没在大量不道德的黑暗模式中解决了心理交易成本问题,这些模式受到大量DRM[1]的保护。你基本上必须让某人在不经思考的情况下点击购买按钮。
目前这些工作量证明系统(Proof-of-Work)的实现方式,实际上等同于移除购买按钮,并在用户打开页面的一瞬间直接扣款。这种做法在道德上存疑,至少与“数据上限[2]”一样存疑,因为它完全剥夺了用户管理支出的能力:毫无余地。
此外,如果我们使用与实际加密货币共享的工作量证明系统,以便从这些哈希中实际获得支付,那么我们面临一个新问题:ASIC。加密货币必须通过全球共识的哈希函数来保障安全,而改变这一全球共识以采用新哈希函数极为困难。且这些哈希值具有经济价值。因此,专门打造定制硬件以更快破解哈希并抢占更多通胀分配及链上费用,显然具有经济合理性。
若某哈希函数存在ASIC专用硬件,则工作量证明机制将同时失败于:
– 作为反垃圾邮件系统,因为垃圾邮件发送者将拥有比合法用户更强大的硬件[3]
– 作为计费系统,因为合法用户无法开采足够的加密货币来支付任何具有经济可行性的金额
如果你不坚持将工作量证明(Proof-of-Work)用作计费机制,而仅将其作为反垃圾邮件措施,那么你可以设计出任何一种与常见的矿机专用集成电路(ASIC)不兼容的复杂哈希函数。由于这些哈希函数无需全球统一,每个人都可以使用不同的、不兼容的哈希函数。
“不要自行设计加密算法”通常是良好的安全建议,但在此情况下,我们并非在做安全,而是在做数字版权管理(DRM)。计算领域中那些使阻止你从Netflix下载电影成为徒劳无功的根本常数,同样使阻止爬虫在理论上成为不可能。DRM之所以有效,是因为理论与实践之间的差距:技术上不成熟的参与者可以通过理论上存疑的加密技术应用被阻止。而大语言模型(LLM)抓取器确实非常简单。但使用久经考验的解决方案意味着他们不必如此:他们只需使用现成的解决方案来破解哈希值,就能破解你使用的任何东西。
[0] 至少在苹果打垮 Patreon 并迫使他们放弃苹果糟糕的商业系统无法处理的任何计费模式之前是这样。
[1] 至少,你不能在游戏中出售微交易物品而不将此前用于离线使用的作弊设备定为非法。你在现金商店出售的半数商品,不过是曾经的GameShark代码。
[2] 需要明确的是,互联网连接的销售单位应为kbps,而非GB/月。每个连接本身都存在带宽限制,因此当ISP向你出售带有数据上限的套餐时,本质上是在进行诱骗式营销。双重上限意味着较低的上限实际上是隐藏在数学问题背后的链路利用率上限。
[3] 电子邮件领域也出现了类似问题,垃圾邮件域名往往拥有完美的DKIM/SPF认证,而正规发送方因不关心电子邮件官僚流程,反而在反垃圾邮件系统中显得更差。
第4点常被忽视,我认为这是最大问题。
一旦有任何价值交换,用户会立即质疑是否值得——如果支付/代币/等在页面加载前发送,他们无法得知。
第4点可通过销售广泛订阅而非单篇文章解决。
流媒体服务证明了这一点。当用户每月支付$10订阅Netflix/Hulu/Crunchyroll时,他们无需每22分钟就问自己“是否愿意为另一集支付7.5美分”。关于谁获得多少流媒体收入的计算完全超出客户考虑范围,且订阅范围足够广泛,足以抑制一次性狂看行为。
对于单个内容提供商,可能需要组建某种联合项目。媒体机构可通过现有网络作为框架进行组织(如“所有美联社报纸每月$x”),但针对以在线内容为主且新闻属性较弱的出版商,我们可能需要建立新的联合体。
> 一旦存在任何价值交换
总是有价值交换——“如果你没有为产品付费,那么你就是产品”。[1]对于广告,我们已经建立了这样一个假设:每个人都明知并接受这种等价交换。对于工作证明,我们可能会采用类似的假设,尽管浏览器或许可以添加一个显示CPU消耗的图形。
[1] 即使是个人博客也是如此,尽管货币元素要遥远得多。
这一点在书籍和其他类型的媒体中最为明显(当然,你可以在商店里翻阅一本书,但这并不是完美的事情……)。
我不知道。品牌和其他质量信号(尽管它们往往不完美,但仍然不是完全无用的)可能会发展。
书籍有封底就是为了这个目的:让你在购买前阅读。
长篇文章也可以有封底摘要,或引人入胜的开头……一些Substack付费文章已经这样做了:它们让你先阅读开头和摘要,再进入有趣的细节。
但对于短篇新闻文章,基于主题的摘要就变得困难了。如果摘要必须透露90%的信息以避免过于模糊,那么当你意识到剩下的10%并不那么有用时,你可能会觉得付费购买是不值得的。
更不用说,标题或摘要背后的报道才是昂贵的。你通过免费阅读获得了价值。
https://blog.forth.news/a-business-model-for-21st-century-ne…
> 此外,如果我们使用与实际加密货币共享的工作量证明系统,以便从这些哈希中获得支付,那么我们面临一个新问题:ASIC。加密货币必须通过全球共识的哈希函数来保障安全,而改变这一全球共识以采用新哈希函数极为困难。且这些哈希值具有经济价值。因此,专门打造定制硬件以更快破解哈希并抢占更多通胀分配及链上费用,显然具有极大合理性。
> 如果针对特定哈希函数存在专用集成电路(ASIC),那么工作量证明机制将同时在以下两方面失败:
> – 作为反垃圾邮件系统,因为垃圾邮件发送者将拥有比合法用户更强大的硬件[3]
> – 作为计费系统,因为合法用户无法通过挖矿获得足够的加密货币来支付任何具有经济可行性的金额
Monero/XMR 和 Zcash 打破了这一论点,同时 ASIC/GPU 抗性算法(如最知名且推荐的 KDF 算法 Argon2)也具有类似特性。
创建一种抗ASIC的加密货币并非不可能,正如XMR所示。困难在于创建并维持围绕该加密货币的网络,而这两者都是少数同时做到这两点的。此外,当XMR已经填补了这一空白时,实际上没有必要再创建另一种加密货币来实现这一目标。
——
> 如果你不坚持将工作量证明(PoW)用作计费机制,而仅将其作为反垃圾邮件措施,那么你可以设计任何与常见矿机ASIC不兼容的复杂哈希函数。由于这些函数无需全球共识,每个人都可以使用不同且不兼容的哈希函数。
反驳:人们(包括开发者)希望有一个现成的解决方案来解决上述反垃圾邮件问题。对于几乎所有人来说,Anubis 都能按预期完成任务。
https://github.com/TecharoHQ/anubis
[已删除]
这其实不是个好主意。这基本上就是强盗行为:对用户造成的成本远高于受益者获得的价值,而用户对此无能为力。(公平地说,目前存在的那些极具侵入性的跟踪广告系统也存在同样的问题,但并不明显它们更糟糕。)
泄露个人信息的行為值得商榷,但与你对事件的描述相比,前者要温和得多。
Coinhive从任何网站上开采的加密货币中抽取35%的收益,而不仅仅是图片论坛。他们无法阻止恶意安装程序从用户那里窃取收益。这为黑客提供了财务激励,促使他们尽可能多地入侵网站,而Coinhive的激励机制与这一目标一致。选择Monero作为基础区块链,已经明确表明了其意图。
> 经验教训:为内容付费的好点子必须通过“舆论风暴测试”。而Krebs……并非一个诚实的新闻来源。
不要创建明显旨在协助犯罪活动的工具,从中牟利,并期望所有人都对此表示接受。
我很高兴,在花费了大量时间尝试提高能源效率之后,人们终于想出了除了增加能耗之外毫无用处的 JavaScript。
我为那些使用低价手机的人感到遗憾,他们现在必须与这些 PoW 系统作斗争,我认为大语言模型 (LLM) 抓取器会赢得这场斗争,而其他人则会遭受更糟糕的浏览体验。
这确实有些不幸,但Anubis的工作原理是,你只会遇到一次PoW测试。
而抓取工具则会不断丢弃其会话cookie(因为如果它们不这样做,你可以通过cookie轻松限制它们的访问权限)。它们需要在每次页面加载时运行PoW工作负载。
如果你访问大量不同网站,这确实很糟糕,但实际上大多数人不会受到太大影响。
当然,也有替代方案。多年来,人们曾多次尝试标准化远程验证。苹果公司早在几年前就将远程验证功能集成到了Safari浏览器中。基本上,苹果/谷歌/Cloudflare会在验证用户是真实的人类且使用真实硬件(通过TPM等技术)后,为每位用户分配一组有限的“令牌”,用户可使用这些令牌访问网站。每个用户都能获得大量可用令牌,但机器人很快就会耗尽令牌并被拒绝访问。这种方法要生效,就意味着要屏蔽Linux用户、禁用安全启动的用户,以及使用过时或越狱手机的用户,但作为交换,你不会遇到PoW墙或Cloudflare验证码。
最终,大语言模型(LLM)抓取器是我们无法获得美好事物的根源。现在这些机器人肆意横行,网络只会变得越来越糟糕。
> 另一方面,抓取器会不断抛出他们的会话cookie(因为如果他们不这样做,你可以轻松地使用cookie限制他们的访问)。他们需要在每次加载页面时运行PoW工作负载。
这种方案本身就无法在没有cookie的情况下运行,因此抓取工具的最佳策略是保留任何(可能多个)会话cookie直至其过期。撇开技术细节不谈,如果一个网站成为值得攻击的目标,一个投入数十亿美元的抓取操作将轻松绕过任何限制措施,无论是cookie、PoW、JS、wasm等。能够通过绕过单一方法访问多个网站只是额外好处。
最终,我认为这个问题无法通过技术手段解决;任何此类尝试都只会导致人类在长期内持续的用户体验退化。(事实上,这种情况已经开始发生。)当然,期待2020年代出现任何形式的监管同样天真……如果说有什么不同,这恰恰符合“万维网已过时”的意识形态,认为用合成垃圾取代它应成为人类的最高优先级。
> 这种方案在没有cookie的情况下根本无法运作,因此抓取器的最佳策略是保留任何(可能多个)会话cookie直至其过期。撇开技术细节不谈,如果一个网站成为值得攻击的目标,一个耗资数十亿美元的抓取操作将轻松绕过任何施加的限制,无论是cookie、PoW、JS、wasm等。能够通过绕过一种方法访问多个网站只是额外的好处。
创建 Anubis 的原因是,作者的公共 Gitea 实例正在使用大量计算资源,因为编写不良的大语言模型 (LLM) 抓取机器人正在抓取其网页界面,导致服务器生成大量差异、指责等。如果人工智能公司通过不反复抓取同一页面,或检测到某个网站是 Git 托管平台并克隆仓库而非抓取网页界面来绕过工作量证明(PoW)限制,我认为这意味着工作量证明已取得胜利。它通过提高加载特定页面的成本,为人工智能公司提供了更高效抓取的激励。
> 这种方案在没有cookie的情况下根本无法工作,因此抓取器的最优策略是保留任何(可能多个)会话cookie直至其过期。
据我所知,Anubis并非独立运行,而是与传统的基于IP地址的速率限制机制协同工作;其cookie与请求的IP地址绑定。如果抓取工具为每次请求使用新IP地址,就无法复用cookie;如果使用同一IP地址以复用cookie,则会受到速率限制的约束。
到一定程度时,向网站运营方购买网站副本的成本将低于抓取成本。
> 抓取工具会不断丢弃其会话cookie
这并不难改变。
> 但Anubis的工作方式是,你只会收到一次PoW测试。
如果是在多个网站上,我看到那个动漫女孩的图片(为什么?)已经多到嵌入我的大脑了。
> (为什么?)
你可以付费购买专业版,这样就能轻松更换图片。这是支持开发工作的绝佳方式。
> 我看到那个动漫女孩的图片(为什么?)
据我所知,Anubis的创建者并未预料到如此广泛的应用,动漫女孩的图片是默认设置。部分网站已进行个性化定制,例如sourcehut。
认证是一个极具技术吸引力的想法,但却是糟糕的经济决策。它本质上创建了一个只能通过谷歌和苹果消费级产品访问的互联网。诈骗和数据抓取的成本会增加,但并不会停止。
说出这一点让我感到痛苦,但我认为在网络上区分人类与机器人已是一项徒劳无功的努力。工作证明只是另一种在每次网络请求上消耗更多资源的方式,而大语言模型(LLMs)寡头们会很乐意消耗更多资源,只要这能减少新晋大语言模型(LLMs)的竞争。
Sam Altman的目标是将互联网变成一个完全的大语言模型(LLMs)训练网络,让人类完全停止使用传统的浏览方式,只通过Jony Ive为他制造的大语言模型(LLMs)设备进行交互。
根据目前的趋势,我认为他可能会得逞,只是因为网络已经变得如此糟糕,以至于我们最终除了通过大语言模型(LLMs)之外,没有其他途径接触主流媒体了。
“说这话让我感到痛苦,但我认为,在网络上区分人类和机器人是一项徒劳无功的工作。”
啊,但这并不是在做这件事。这一切只是在增加摩擦。将网页的加载成本从0.00000001美分提高到0.001美分,对于那些只想畅游网络的人来说是一个巨大的转变,但对于大多数人类用户来说,成本在噪音中消失了。
这一切真正做到的只是让成本达到某种平衡。目前访问网页的成本太低,而生成这些网页的成本可能很高。也许该网页需要进行大量复杂的计算。或许服务器被庞大的抓取群组规模压垮,导致一方是巨型企业,另一方是每月仅需$5的服务器,这种不对称局面愈发明显。工作量证明系统并不会显著改变服务器的成本,但现在若想抓取整个网站,你就必须付费。你可能无需直接支付给网站所有者,但你确实需要付费。
如果你想阻止机器人访问它真正想访问的页面,那又是另一个问题。但那确实是另一个问题。这个问题解决的是人们利用少量资源批量抓取整个网站,而这些网站需要大量资源来提供,如果大规模实施,基本上就能解决这个问题。
这并非完美解决方案,但目前也没有其他完美方案可供选择。“增加阻力”并不意味着机器人无法突破。但这意味着它们必须对自己的行为更加挑剔。即使是最大的服务器农场,也需要三思而后行,是否要突然投入数百倍的资源来进行工作量证明。
这是一个有趣的经济问题……网络与搜索引擎的关系在过去几十年里一直在缓慢但稳步地恶化。此类技术的广泛部署可能对搜索引擎和人工智能构成灾难性后果。人工智能是否预示着抓取工具从网络中提取了如此多的内容,以至于网络最终发现反击并试图规范这种关系在经济上是高效的?
> 将网页加载成本从0.00000001美分提升至0.001美分,对那些只想肆意汲取世界数据的人而言是巨大转变,但对大多数人类用户而言,这成本微不足道。
如果你要无端浪费我的CPU周期,请至少进行挖矿并捐赠给慈善机构。
我是Anubis的作者。告诉我如何在无需向随机用户的浏览器下载数千兆字节的科学数据的情况下实现蛋白质折叠,我今天就会实现它。
或许可以参考folding@home项目?https://foldingathome.org https://github.com/FoldingAtHome/fah-client-bastet
似乎可以将计算任务拆分。
常见问题解答:https://foldingathome.org/faq/running-foldinghome/
如果我关闭电脑,客户端会保存工作进度(即检查点)吗?
> 核心会定期将数据写入硬盘,因此如果你停止客户端,它可以从某个点继续处理该工作单元,而无需从头开始。使用Tinker核心时,这在每个帧结束时发生。使用Gromacs核心时,这些检查点几乎可以在任何位置发生,且与结果中记录的数据无关。最初,这设置为每1%的WU(如Tinker中的100帧),随后添加了每15分钟的定时检查点,因此在较慢的机器上,您不会丢失超过15分钟的工作。
> 从客户端的4.x版本开始,您可以将15分钟的默认值设置为其他值(3-30分钟)。
注意事项:我不知道“1帧”的数据量是多少。
由于同源限制问题,检查点无法实现任何有用的功能。除非浏览器支持某种能完成有用工作的证明机制,否则整个方案都无法实施。单一源头无法完成足够有用的工作量。
问题在于,这将导致大量开销。如果你坐下来冷静地计算实际数据,试图将计算任务分配给大量消费级设备,而这些设备可能每次只能使用一个核心两秒钟,每小时仅能使用几次,最终你会发现自己运行计算更划算。我的家用游戏电脑每小时可提供16个CPU小时,即56700个CPU秒。(如果扣除超线程惩罚可能更少,但这不会对数字产生太大影响。) 假设需要15,000人运行大约3次这样的2秒计算,再加上协调成本,以及提供与计算相关的数据,再加上用于跟踪所有这些数据的基础设施,以及如果做一些非 trivial 的事情,那么我从这“2秒”中节省下来的时间中,相当大一部分将被浪费在设置和丢弃上。数学上根本行不通。在网页上直接尝试这种恶意软件从未真正成功过,再加上需要礼貌地操作并分割成如此小的片段,更是行不通。
而且这还忽略了需要对非常小的数据块进行工作证明的问题。基本上这是一个无法实际解决的问题,除非有真正的天才之举。
人们使用大语言模型(LLMs)是因为搜索结果(由于搜索引擎优化过载、谷歌糟糕的算法等)非常糟糕,而阿努比斯通过尝试阻止索引,使这些已经糟糕的搜索结果变得更糟,这意味着人们会更想使用大语言模型。
因此,阿努比斯的存在将意味着更多进行抓取的动机。
Anubis不会影响那些设置了用户代理字符串的良好行为的机器人
> 这确实有些不幸,但安努比斯的工作原理就是这样,你只会收到一次PoW测试。
实际上我一次都不会收到,因为我拒绝为那些本不该需要它的网站启用javashit,转而选择由专业人士运营的平台。
> 本不该需要它
在这种情况下,“本不该”的定义有很多种
– 不需要它,但包含它以跟踪你
– 不需要它,但包含它以增强页面
– 不需要它,但包含它以降低成本(例如,通过动态加载页面的一部分/按人加载并缓存页面的其余部分)
– 不需要它,但包含它以阻止那些给他们带来比网站合理预期收益还多的成本的机器人
我明白,JS 可以被用于不良目的,你可能不喜欢它。但你似乎认为自己站在正义的支柱上,而这个支柱并没有你想象中那么牢固。
嗯,一切都是取舍。我知道很多小型网站因为大语言模型(LLM)抓取增加了他们的CPU和带宽负载,以至于无法继续托管网站而不得不关闭。
你能说几个名字吗?
> 我为那些使用低价手机的人感到遗憾,他们现在必须与这些 PoW 系统作斗争,我认为大语言模型(LLM)抓取器会赢得这场斗争,而其他人则会遭受更糟糕的浏览体验。
我不知道。在 PoW 系统中,你到底需要做多少工作才能让抓取器去追寻更容易的目标?我猜你不会太影响人的用户体验。如果你这样做了,那么说明你没有对 PoW 算法进行微调,或者你的对手/抓取器非常坚定。
任何不会影响最终用户的 PoW 都不会影响大语言模型 (LLM) 抓取器。
“任何”是一个非常强大的词。
正如本帖子以及几乎所有涉及该话题的帖子多次提到的,成本可忽略不计(无论是时间、金钱还是麻烦程度)的工作量证明不会影响最终用户,但会因涉及的规模而影响大语言模型(LLM)抓取器。
问题在于如何设计一个符合该模型、经济可行且不易被破解的PoW机制。
但使用“任何”一词似乎暗示这在理论上是不可能的(“任何运动的机器都会遇到摩擦并因能量转化为热量而损失能量,因此永动机是不可能的”),而事实上这在理论上是可能的,只是尚未成为现实。
我的手机是8年前的旧款,但并未察觉浏览体验有任何下降。网站加载多花两秒钟,这不算什么大问题。
我真的很喜欢这个方案,因为它不会影响我的抓取工作。
我喜欢抓取网站并为它们制作替代的个性化前端。验证码对我来说非常痛苦。工作量证明(PoW)对大规模抓取操作来说很痛苦,但我不会介意花一些CPU时间从没有RSS源或API的网站获取最新帖子。
是的,对我来说,PoW 在这方面也非常合理。验证码对(某些)人来说很难解决,填写起来非常烦人,但对于支持视觉的大语言模型 (LLMs) 来说很容易解决(甚至可以使用第三方服务,你只需为 N/solves 付费,所有主要验证码服务都提供这种服务)。PoW 在分布式/垃圾邮件设计中难以应对,但对任何用户来说,只需等待一两秒即可解决。而所有个人抓取工具仍可正常运行,只是速度稍慢。
这似乎是解决一个糟糕问题(该问题已有诸多糟糕解决方案)的可行方案。
在一家媒体公司,我们的网页性能监控工具开始标记长时间运行的客户端XHR请求,而我在真实浏览器中无法复现该问题。经调查发现,一家分析服务商注入了脚本,用于检测客户端是否疑似机器人。若检测到机器人,该脚本会将客户端作为工作节点,执行其自身的第三方API请求(如社交分享次数等数据)。因此,此类做法确实已有先例。
这非常有趣。一个直观的想法是,机器人可能具备跨站点请求的能力。这场军备竞赛的逻辑结论是,机器人最终将不得不运行实际浏览器。不过,这一事实是否会显著降低其抓取能力尚不确定。
> 整个军备竞赛的逻辑结论是,机器人最终别无选择,只能运行真正的浏览器。
我以为机器人使用(无头)浏览器已经是解决现有简单机器人问题的现有变通方案,所以这似乎不是一个重大变化。
> 这场军备竞赛的逻辑结论是,机器人最终别无选择,只能运行真正的浏览器
我认为这种情况现在几乎已经成为现实。像Cloudflare这样的服务在识别原始机器人方面做得相当不错,如果网站运营商想阻止所有(或至少绝大多数)机器人,他们可以做到。唯一可靠的途径是使用真正的浏览器。(这确实为抓取所需的资源设定了下限)
令人惊讶的是,还没有人将 Anubis 分叉,将人工 PoW 改为简单的 Monero 挖矿 PoW。
将抓取机器人困在 LLM 生成的媒体维基页面组成的无尽迷宫中,让它们随着每篇文章的增加而挖矿,这会非常有趣。
至少这样我们就能从这些粗鲁的机器人身上赚钱了。
如果不顾及无辜者受影响,添加这些功能的动力会大得多。
尽管坦白说,已有数百万网站在没有这种动力的情况下因使用Cloudflare而自毁
之前有一家公司几乎做了同样的事情,名为CoinHive
机器人可以自行检查是否中了大奖,保留有效的哈希值,只在它们毫无价值时返回。
这样,机器人就能从它们需要为验证码完成的工作中赚钱。
据我所记得,开采的区块中有一条指令类似于
假引用 > 请将奖励和费用添加到: 187e6128f96thep00laddr3s9827a4c629b8723d07809
如果制作一个更改地址的假区块,那么该假区块就不是有效的。
这避免了与从矿池中窃取收益相同的问题,同时也防止恶意人员监听新挖出的区块,假装自己发现并发送假区块。
1. 问题在于,机器人需要理解它运行的程序才能做到这一点。这类似于停机问题。
2. 在此类硬件上进行挖矿没有经济效益。电力成本高于挖矿收益。
现实中,机器人所有者可能会注意到你正在运行MoneroAnubis,然后会专门检查MoneroAnubis,例如通过文件哈希,或评论中包含“/* MoneroAnubis 1.0 版权 blah blah GPL 许可证 blah */”等信息。机器人不会被期望自动识别这一点。
此外,理想的Monero矿机应是节能型CPU(因此可能是顺序执行型)。Monero 设计上不存在 ASIC 矿机。
我怀疑你无法高效地做到这一点,以至于一个针对挖矿业务优化的挖矿设备能够通过网络爬取的蜜罐保持足够的忙碌状态,使其设置成本与直接爬取并跳过 pow 保护站点 + 专门的加密货币挖矿操作作为两项独立任务相比更值得。
我们需要一种无知加密货币挖矿算法 ^^
> 那么,正是这些机器人通过完成验证码任务来赚钱。
难道他们不直接挖矿更简单吗?这似乎是一种非常绕弯子的挖矿方式。
这是一个用于诱捕爬虫的好主意,不过根据[0],我希望没有人真的会在任何人想使用的真实网站上尝试使用它。
[0] https://news.ycombinator.com/item?id=44117591
重新发布我最近关于 CAPTCHA 和黄牛的类似观点,但这对抓取工具来说更相关。
PoW可以帮助抵御基本的爬虫或DDoS攻击,但它无法阻止认真的攻击者。上周我研究了一个Binance CAPTCHA破解工具,它根本不使用浏览器,只是一个普通的HTTP客户端。https://blog.castle.io/what-a-binance-captcha-solver-tells-u…
攻击者已完全逆向工程了信号采集和解码状态流程,包括混淆部分。他们能够伪造所有预期中的遥测数据。
此类设置在票务或球鞋发售等机器人泛滥的环境中相当常见。爬虫也常采用相同手段以降低成本。CAPTCHA和PoW大多沦为信号采集协议,若这些信号未与实际运行时紧密耦合,便会被伪造。
关于PoW:如果你试图让它慢到足以打击机器人,也会影响低端设备用户。有人甚至将PerimeterX的PoW移植到CUDA以加速解决:https://github.com/re-jevi/PerimiterXCudaSolver/blob/main/po…
> 大语言模型(LLM) 刮刀在恶劣的环境中运行 […] 因为你无法从 JavaScript 中分辨出工作证明系统和其他功能。[…] 对于那些想要利用你的刮刀的 CPU 来挖掘加密货币的人,或者 […] 想要尽可能多地浪费你的 CPU 的人来说。
这是为基于 JS 的 PoW 系统提供服务让大语言模型(LLM) 运营商感到恐惧的一个合理原因:代码实际上可能是恶意的。
但这并不是为人类用户提供基于 JS 的 PoW 系统的合理原因:这些证明对大语言模型(LLMs) 有效的原因完全在于代码可能是恶意的威胁。
换句话说,PoW 之所以能对抗大语言模型(LLM) 抓取器,并不是因为 PoW 本身,而是因为它们可能包含恶意代码。你为什么要用这个来威胁你的用户呢?
如果你只能对大语言模型(LLMs)施加威胁,那么为什么不先从那里开始削减工作量证明垃圾呢?
我知道,这是因为这并不容易。那么,与其挥舞着恶意软件的达摩克利斯之剑,为什么不制定一些人们可以诚实地应用且没有风险的工作量证明算法作为标准呢?
我认为这并非“恶意”,而是“耗费资源”(CPU周期),这对广告密集型网站而言已是问题。
我不确定,但浏览器沙箱逃逸是个大问题,堪比百万美元悬赏级别的威胁。我认为将自动化浏览器置于容器或虚拟机中并设置超时运行是安全的。
如果某个网站对我采取这种手段,那我就不使用他们的数据。笑话在他们身上,很快如果某物对AI不可见,它就等于不存在,就像现在被谷歌移除索引一样。
> 你为什么要用这种方式威胁用户?
你的用户——我们,浏览网页的人——已经面临这种威胁。添加PoW并不会改变这一点。
我的浏览器已经有多层保护措施。我的浏览器甚至允许我通过插件(如uBlock等)提升这些保护措施,而我的操作系统还会添加更多保护层。这足以允许合法的PoW,同时阻止恶意代码。
那些不安全意识强的用户会禁用javascript。
他们也不会受到PoW或其恶意版本的威胁。
这是一个糟糕的观点。所有主要的大语言模型(LLM)抓取器都已经运行和执行JavaScript,Googlebot可能已经这样做了十年。
对加密挖掘的运行时间进行简单的限制,以免造成太大的问题。
通过让机器人触发该限制,爬虫无法访问受保护页面,因此系统有效。
机器人要么冒着被转化为加密货币矿工的风险,要么冒着无法获取免费数据来训练AI的风险。
真实用户也有一个阈值,超过后会关闭标签页。
“Googlebot 可能已经这样做了十年。”
这就是为什么谷歌开发了浏览器,原来抓取网页需要几乎开发一个 V8 引擎,那么为什么不将其作为浏览器发布呢。
当你说出来时,这显而易见,但真是个了不起的见解。
但这说不通。为什么不直接使用 Firefox?或者改进 Firefox 的 JS 引擎?
我猜他们开发浏览器是为了掌控浏览器市场。
> 为什么不直接使用 Firefox?
Servo存在的原因(当它还在Mozilla的掌控下时)是因为Gecko的代码(不包括IonMonkey)已经变得非常混乱,计划用Servo的组件替换Gecko的组件。
Firefox的自动化系统现在已经有了很大的改进,但这实际上是多年来对Gecko进行模块化改造、部分用Servo的组件替换Gecko的组件(如Stylo:https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-en…),以及在代码仍然混乱的情况下积极构建API的结果。
V8在当时比Firefox的性能要好得多。据我所知,它是第一个采用将重复的JavaScript代码编译为原生汇编代码的JavaScript引擎。
如果V8在谷歌考虑开发Chrome之前就被用于其内部的网页抓取工具,那么这显然是有道理的。另一个因素是开源项目在整个代码库中围绕你自己的引擎进行重构的官僚主义和困难。谷歌有足够的资金和资源来聘请业内最顶尖的人才来开发 Chrome。
他们的浏览器就是他们的爬虫。你看到的就是爬虫看到的就是广告的样子。
“为什么为当时全球最大的公司(价值超过1000亿美元)的核心应用开发内部软件?为什么不直接将某个小众开源浏览器改造成解析器,然后将我们1000亿美元的业务托付给一些志愿者和一个501c3非营利组织?这在股东大会和诉讼中会显得多么体面,当他们问我们如何保障软件安全时。”
为什么他们不这样做,而是选择分叉WebKit?
事情没那么简单。我认为,拥有这些技能和知识已经使它成为可能,但这不是他们这样做的原因。他们创建Chrome是因为,让丰富的网络应用程序运行良好符合他们的最佳利益。
你显然不了解这个行业,人们已经为此抱怨了整整10年。
而且即使使用浏览器,被Macromedia Flash或ActiveX控件封锁的内容也无法被索引,这就是谷歌为何如此大力推动HTML5功能扩展的原因。
从这个角度来看,它真的成功了吗?HTML5确实很棒,但它从未取代Flash。网站主要只是变得更加静态。我怀疑Flash的衰落更多是因为缺乏移动设备集成,而非HTML5的改进。从某种意义上说,这令人遗憾,因为Flash曾经非常有趣。
但这正是文章的重点吗?大型爬虫很难分辨出那些占用其运行时间的 JavaScript 是否是加密货币挖矿程序还是反爬虫系统,因此它们不得不放弃“有用”的爬取行为,因此 PoW 可能确实有效。
不,重点是确实存在一些高级的 PoW 挑战来证明你不是机器人(那些需要超过 3 秒来识别你的网站就是在做这件事!)
核心思路是反制滥用者:若怀疑对方是机器人,可将PoW计算方式从GPU/设备/芯片指纹识别,改为执行几轮门罗币(Monero)等当前流行加密货币的挖矿操作。
听起来没用,但别忘了在他们的农场中,每个抓取节点只需0.5秒的延迟,累积起来就是可观的阻力。
关键在于不要被那些运行反广告的Tor用户发现,他们会尝试反编译你的代码,当他们的个人Chrome构建无法正常工作时。我称他们为“用户”,因为他们访问的是一个非免费网站,宣称自己有权在那里,这与为他人支付账单的机器人无异。
> 对加密货币挖矿的运行时间设置简单限制,以防止其成为太大问题。
如果他们设置了限制,你就赢了。你只需让你的网站超过那个限制,问题就解决了。
我一直认为,JavaScript加密货币挖矿是网站 monetization 的更好选择(只要人们不依赖这些网站,且网站所有者不走极端)。我宁愿给你一秒钟的 CPU 时间,也不愿占用我大脑的空间。为什么这会如此不受欢迎?同样,我认为 Anubis 应该直接挖矿,而不是浪费电力。
我猜想,几乎不可能设计出一种加密系统,既不会在低端移动设备上引入不合理的延迟/电池消耗,又足够困难以防止在尖端硬件上运行的爬虫程序破解。
如果你决定将低端设备视为值得牺牲的对象,那么你就是在制造电子垃圾。更不用说能源负担了。
> 为什么这如此不受欢迎?
也许是因为尽管当今广告技术与加密货币挖矿同样不光彩,但广告的概念是人们能够理解的。大多数人并不真正理解加密货币,因此它被归类为“黑客”和“病毒”的范畴。
对于那些理解广告技术和加密货币的人来说,加密货币挖矿在主观上(至少对我来说)感觉更像是被盗取,而非广告。同样,对于Anubis,浪费电力在PoW上对我来说比加密货币挖矿更容易接受。这大概是人类心理的怪癖吧。
在用户机器上未经同意运行工作量证明(PoW)等同于盗取用户的计算和能源资源。任何以此为目的的网站都在传播恶意软件,应被视为恶意软件。
广告是注意力的盗窃,而注意力是一种极度稀缺的资源。我甚至会说这是精神强奸。他们未经我们同意,强行将品牌和商标植入我们的脑海。他们故意忽视并绕过任何抵抗尝试。不过这一切都被“正当化”了,商业利益可以为所欲为。
> 广告是注意力盗窃,而注意力是一种极度稀缺的资源。我甚至可以说,这是一种精神强奸。他们未经我们同意,强行将品牌和商标植入我们的思维。他们故意忽视并绕过任何抵抗尝试。
(1): 任何个人的注意力本质上都是有限的。这种注意力本身具有内在价值。
(2):运营任何网站都需要成本,视频播放的成本更是翻倍。这还不包括像YouTube这样的视频分享平台必须具备的审核和版权机制,以避免自身卷入版权诉讼。
(3):产品不会在未经公众知晓的情况下出现。要让产品取得成功,人们首先必须知道它的存在。
广告是希望吸引人们对(3)的注意,并愿意在特定平台(1)上为此付费的结果。(2)的成本,以及支付给那些通过视频吸引注意力的视频制作者的费用,可以通过(1)中的资金来支付,即在视频周围或之前放置广告。
你可以选择不观看广告,但作为交换,用于支付(2)及视频制作者的资金必须从其他渠道获取。
> 这种关注本身具有内在价值。
是的,它属于我们。它不应被出售给出价最高者。
> 运营任何网站都需要成本,而视频播放的成本更是翻倍。
> 产品不会在未经公众知晓的情况下出现。
这不是我们的问题。商业需求不能成为借口。让那些所谓的创新者想办法在没有注意力经济的情况下生存下去。如果他们做不到,就让他们破产吧。
> 是的,它属于我们。它不是他们的,不能卖给出价最高的人。
你的注意力属于你,直到你把它交给别人。
视频制作者有权在他们的视频上出售赞助,以换取他们吸引的注意力。这也是他们的权利。
> 这不是我们的问题。商业需求不能成为借口。让所有所谓的创新者想办法在没有注意力经济的情况下生存下去。如果他们做不到,就让他们破产吧。
你的逻辑已经被尝试过了:它叫Netflix。而它已经被YouTube超越了。
YouTube一直是独立视频创作者的源泉,因为他们有一个平台可以(a)免费为他们托管视频,(b)他们可以在不支付前期费用的情况下发布他们的实验,并且因为平台是免费的,所以可以找到观众。
你的想法要求前期付款,这将风险成本从0大幅增加到一个固定值。在你的方案下,零资金的一次性实验将被扼杀。
追求他们的破产无异于一种病态的欲望,即让你的理想践踏他人,以满足你自己的得意。回到DVD时代吧。
> 视频创作者有权在视频中出售赞助,以换取他们吸引的关注。
而我有权使用uBlock Origin和Sponsor Block自动屏蔽并跳过所有这些广告段落。不久的将来,我们将拥有基于人工智能的广告拦截技术,能够实时从视频流中编辑出广告。
我们决定关注什么。制作视频并非获得欺骗我们观看广告噪音的许可。用一些有趣的话题引诱我们,然后切换到商业垃圾,这只是粗鲁的行为,这是我能给出的最宽容的解释。
> YouTube一直是独立视频制作人的源泉
正是广告和监视资本主义。这些才是当今网络一切问题的根源。阻断这些将降低他们的投资回报率,从而修复网络。
> 在你的方案下,零资金的一次性实验将被扼杀。
不。只有那些受金钱驱动的人会离开。自人类诞生之初,人们就一直出于纯粹的乐趣而创作。那些具有内在动机的人才是我真正关心的人。而不是这些无聊的以利润为导向的“内容创作者”。
我认为一些非法流媒体内容的网站会这样做
我认为这种斗争无法通过这种方式取得胜利。
为大语言模型(LLM)抓取内容并不是一个非常时间敏感的事情。你不需要每天抓取每个页面。Sam Altman 并不需要一个同步的互联网副本来实现他的目标。
这是对这个问题的一种看法,但人们正在通过工作量证明系统解决的是大语言模型(LLM)抓取器对这些网站进行的(无意的)DDoS攻击。只需将流量减少到可管理的水平,我就可以回到我的网站应该做的工作上。我个人并不在乎 Sam Altman 是否拥有我的 git 服务器对我的开源存储库中每个提交的责任解释的副本,因为他可以克隆我的 git 存储库,得到相同的结果。
我有些困惑。目前有人网站正在遭受大语言模型(LLMs)抓取器的 DDOS 攻击吗?还是这只是假设?
如果你无法处理每周或每月每页一个请求的流量,我认为还有更大的问题需要解决。
> 我有点困惑。目前有人网站正在遭受大语言模型(LLMs)的抓取器DDOS攻击吗?还是这只是假设?
这是非常真实的,也是Anubis最初创建的原因。这并不是对大语言模型(LLMs)的敌意,而是*首先*是对其抓取器的 DDoS 保护。
https://drewdevault.com/2025/03/17/2025-03-17-Stop-externali…
https://social.kernel.org/notice/AsgziNL6zgmdbta3lY
https://xeiaso.net/notes/2025/amazon-crawler/
我已设置了几个蜜罐服务器。目前仅OpenAI在24小时内就占用了其中一个蜜罐服务器4小时的计算资源。这并非假设。
这里每分钟有25000次以上的访问。而这些只是那些不自称是浏览器的爬虫。
我不明白你为什么认为大规模重复爬取不是问题。毕竟,这不仅仅是一个单一的行为者,而且现在忽略robots.txt似乎已经成为常态。
> 我有点困惑。目前有人网站正在遭受大语言模型(LLMs)的抓取器DDOS攻击吗?还是只是假设的情况?
是的,有些网站正在遭受大语言模型(LLMs)的抓取器DDOS攻击。
> 如果你无法处理每周或每月每页一个请求的流量,我认为还有更大的问题需要解决。
这并不是每周或每月一个请求的问题。许多网站都报告说,它们正在遭受来自许多不同 IP 地址的抓取器的攻击,每个 IP 地址都会发出一个请求。
> 我有些困惑。目前有人网站正在遭受大语言模型(LLMs)抓取器的 DDOS 攻击吗?还是这只是假设的情况?
目前已有数万个爬虫正在试图获取更多训练数据。
情况只会越来越糟。我们都想要更多训练数据。我想要更多训练数据。你也想要更多训练数据。
我们都想要最及时的数据。所以,是的,随着时间推移,情况只会越来越糟。
对于模型来说不是。但我认为,其中许多机器人也来自工具使用或“研究”或其他他们现在称之为的东西。对于这一点,我并不在意
我怀疑任何“反爬虫”系统都不会真正有效。
但如果有人发现这样的系统,它将为一场非常危险的反击铺平道路:需要数据的浏览器厂商(如谷歌)只需利用已安装的庞大浏览器舰队来为他们进行数据抓取。Chrome、Safari、Edge等浏览器将你访问的页面发送至其数据中心。
这感觉上已经有一半在发生了,所以这并不是一个太大的飞跃。
我认为这也是Windows中类似Recall功能的最终目标。直接从你的电脑上窃取训练数据,无需等待用户先将数据上传到网络。
这就是为什么我们需要https://ladybird.org/
我们能否采用一种工作量证明算法,计算一些真正有用的东西?比如寻找大质数,或者类似的分布式计算程序。这样,所有被浪费的计算能力至少不会完全白费。
我是Anubis的作者。我研究过蛋白质折叠。问题是蛋白质折叠需要科学数据,这些数据很容易达到数十亿字节的规模。这比我愿意提供给客户端的数据量要大得多。除非能解决大数据问题,否则很多“计算向善”的方案坦白说是不切实际的。
零知识证明本质上是任意的工作量证明模型。目前有一些有趣的研究正在结合多方计算(MPC)和零知识证明进行,因此只需将一小部分数据保存在客户端。我好奇这是否能让方案重新可行。
遗憾的是,有用的结果通常需要进行大量计算才能找到,这需要分布式搜索,因此无法可靠地验证是否完成了工作(大多数搜索都不会找到任何结果,你可以假装没有找到任何结果而无需实际工作)。
如果一个服务有足够多的并发客户端,能够快速可靠地找到有用结果,你可以通过检查是否找到结果来验证大多数客户端是否完成了工作,然后根据结果决定让所有人进入或阻止所有人;但这样你依赖于绝大多数客户端诚实,你的服务才能正常工作,而一些不诚实的客户端仍然会混入其中。
Xe在此处的出色工作——虽然不是第一个,但这是我见过的在PoW反爬虫项目中获得最多关注的(还附带MIT许可证!)。
PoW反爬虫工具是一个良好的开端,但为什么我们不直接跳到最终目标?我们正逐渐接近一个信息价值真正得到充分实现的点——人们将停止免费分享知识。这并非必然,但在经济压力下,知识显然会成为可转化为资本并试图从中获取租金的对象。
实现这一目标的简单方式就是为每个网站设置登录墙。当然,最初不必是付费登录墙,但这是在法律和实践层面防范爬虫的极简方案。
我认为,高质量的知识、源代码(本质上是可执行的知识)以及开放性,是功能正常、经济平衡的社会中的一种奇迹/奢侈品,在这样的社会中,人们出于各种可能的原因感到有动力回馈社会,或者有时间思考除了生存之外的事情。
别误会我——末日论者的观点几乎总是错误的——每年人类在许多重要指标上都比前一年更好,但要看到一个我们能轻松度过另一次技术变革的世界正变得越来越难,而这次变革可能影响到大量劳动人口。
> 人们将停止免费分享知识。情况不必如此。
是的。人们往往高估了人工智能带来的表面威胁,但在我看来,更严重的威胁在于,通过大量引入那些乐于在囚徒困境中选择“背叛”的智能体,从而扼杀知识的自由交流,并最终瓦解开放、互信的社会。
> 开放本身是一种奇迹/奢侈品,存在于功能正常、经济平衡的社会中,人们出于各种可能的原因感到有动力回馈社会,或有时间思考超越生存的问题。
“高信任社会”。这是西方社会通过长期社会实践构建的成果,对经济增长极具益处,但易受“叛逃者”威胁。可以将其比作热带雨林:一种可以被烧毁以提升季度利润的资源。
> 是的。人们高估了人工智能的炫目威胁,但对我来说,更严重的威胁是通过充斥着乐于在囚徒困境中选择“背叛”的代理人,摧毁知识的开放交流以及更广泛的开放、信任社会。
我认为社会并非天生开放/信任——这需要付出努力和大量反直觉的思考,并持续很长时间。
> “高信任社会”。这是西方通过社会实践花了很长时间才构建起来的,对经济增长极为有利,但容易受到背叛者的影响。想象一下热带雨林:一种可以被烧毁以增加季度利润的资源。
我认为信任是安全(尤其是“经济安全”)的下游产物。当人们不再感到威胁时,信任度会更高。人们会从不适合自己的文化中“背叛”——通常是因为某种危险的迹象,人们会离开自己喜欢的文化,转向另一种文化。
这与互联网的宗旨背道而驰。
也许知识自由开放的梦想注定要失败;如果知识有价值,且人们被鼓励投入更多时间和精力去创造它而非从事其他工作,那么他们就必须得到补偿才能做得越来越好。
不过这有点令人遗憾,如果你成长在一个可以自然发现事物并通过搜索获取信息的世界上。
我认为这并非不可避免的末日,但可能需要重新调整激励机制。或许以支付形式实现。在多个欧盟国家,未经与身份证或护照在中央数据库关联的互联网连接是违法的,这或许也是个选项——人们通常不愿因此被逮捕。
是的,让我们把整个网络都变成Facebook,多么光明的未来啊
我认为我们只有两种选择:1) 每个网页都需要Facebook登录,然后Facebook提供免费托管服务。2) 每个网页都需要其他登录方式,但不局限于单一系统。
我认为GP的评论暗示我们应积极推进第二种方案,而非被动等待第一种方案的实现。
你对第二种方案的判断是正确的!Facebook本身并非我的首要考虑(毕竟每个社交网络都想构建自己的封闭生态系统)。
我的关注点更多在于大型封闭花园之外的区域——它们可能会变成许多较小的……围栏后院,这么说比较委婉。
我希望你明白,无论是否采用单一系统,这种做法都会破坏匿名性和开放网络。
IP地址并非匿名。你尝试过让你的IP地址匿名吗,比如使用Tor或类似NordVPN的公司?(我不是在针对Nord,尽管他们值得被针对——他们只是广告最多的。)
你会发现几乎到处都有验证码,很多地方会直接返回403错误或断开连接。甚至谷歌有时也不会为你提供服务。
你现在没有遇到这种情况的原因是你的IP地址是可以识别的。
我最近在没有使用VPN的家庭网络连接上经常看到验证码。那个时代似乎正在结束,可能是因为AI爬虫现在正在使用住宅IP地址块。
NANOG上有人讨论整个住宅ISP现在被标记为VPN。看来向企业出售过度的安全措施很容易,就像CrowdStrike一样。
IP地址可以是匿名的,我几乎在所有使用验证码的地方都会看到验证码,而无需使用Tor。
无法匿名的是使用经过验证的身份登录。
匿名性和开放网络是两回事,而且两者都没有被承诺或保证给互联网上的任何人。
对于重视匿名性的人来说,他们会创建自己的空间。重视开放性的人将继续保持开放。
我们即将发现的是,当潮水退去时,人们会展现出他们真正相信/想要的东西——除此之外的任何东西都是一种社会控制,无论是通过威逼利诱还是其他手段。
> 匿名性和开放网络是两回事,两者均未被承诺或保证给互联网上的任何人。 > > 重视匿名性的人会创建自己的空间。重视开放性的人将继续保持开放
当今互联网的绝大多数内容并未被承诺,但你凭什么决定互联网现在必须成为什么样,以及持有不同观点的人需要被限制在自己的“隔离区”中?
每个人都重视隐私,只是在社会压力下,大多数人不得不放弃如此多的隐私。
> 我们即将发现的是,当潮水退去时,人们会展现出他们真正相信/想要的东西——除此之外的一切都是社会控制的形式,无论是通过威逼利诱还是其他手段
我不知道你在说什么
当然我知道。但那已经过去了。
你一定在使用不同的互联网
我没有。但你声称什么是真的?
谢谢!我打算把这个项目发展成一家公司。我短期内的产品目标是推出无品牌标识的Anubis(已实现),长期目标则是成为一家由加拿大人运营的Cloudflare竞争对手。
精彩的工作?更像是对网络的破坏。
我的意思是,大语言模型(LLM)抓取器点燃了公共领域,而当你这样做时,公共领域曾经存在的地方现在就变成了一片焦土。这并不是网站运营商的错,他们为了防止自己的网站被 DDoS 攻击而消失,不得不采取自卫行动。
关于提供收入的工作证明系统:
1)让大语言模型(LLM)和其他抓取器为他们使用的资源付费,在我看来完全没问题。此外,作为管理一定程度抓取行为的人(每月请求量在数千万级别),我对此表示支持。抓取行为的范围很广,问题不在于资源成本,而在于对方不愿设置API或设置过多访问障碍,导致绕过这些障碍变得更容易。
2) 这似乎为Cloudflare提供了一个机会。让客户选择在访客触发Cloudflare审核页面(该页面会进行额外检查以判断是否为恶意行为者)时,要求提供工作证明,并将由此产生的收入用于抵扣月费(或在免费计划中,作为信用额度用于尝试其他付费功能)。可能会有一些反常的创意,要求 Cloudflare 进行更严格的检查,但最终,由于所有费用都是由网站所有者支付的,因此如何管理网站是网站所有者的选择。
“因为您无法从执行其他操作的 JavaScript 中特别分辨出 JavaScript 工作证明系统。让您的抓取器运行 JavaScript 意味着它可以”
大语言模型(LLMs) 可以,哈哈
一个强大的用例是,它们现在几乎可以捕获所有的混淆尝试。想要建立一个市场,让参与者进行聊天,但又不希望交易在网站之外进行?大语言模型(LLM)可以做到。保护儿童?大语言模型(LLM)可以做到。
有趣的是,我们在CloudTabs(一款基于BrowserBox的远程浏览器SaaS服务)中处理过这个问题。我们的解决方式是通过Python脚本监控资源使用情况,当用户标签页或所有进程资源占用过高时发出警告,触发规则后直接终止违规进程(即占用过多CPU或内存的进程)。
Chrome有一个不错的功能,即可以终止标签页的渲染进程,通常这只会导致该标签页关闭,而其他进程仍可正常运行。这种方式结合警告提示,既能最小化用户影响,又能确保所有进程的资源分配。
过去我们曾尝试过cgroups(两个版本)和其他限制机制,但发现动态监控是最可靠的方案。
“大语言模型(LLM)抓取器可能通过被入侵的机器等途径获得大量CPU时间。”
尚不清楚作者所指的大语言模型(LLM)抓取器是指为基础模型收集训练数据的抓取器、浏览网页以提供最新答案的大语言模型(LLM)抓取器,还是程序员或用户要求使用浏览器的vibe编码器和代理。
但在这些无数案例中,我无法想象被入侵的机器与之有关。如果我们谈论的是被入侵的机器,那么大语言模型是否参与以及如何参与都无关紧要,这是一种与大语言模型完全无关的分布式攻击。
您可以通过信用卡在公开互联网上购买住宅网络中的代理访问权限,但这些代理可能属于某人的僵尸网络(虽然可能性不大,但您无法确定)。我尚未听说有人在设备上出售运行代码。这只是一个HTTP或SOCKS5级别的代理。
问题不在于资源使用,而在于他们为复制目的窃取的内容。
这是其中一部分,但他们如此贪婪和激进,以至于开始压垮该内容的主机并导致事物变得不那么开放。某种程度上,他们不仅在“窃取”内容供自己使用,还在为人类抹去这些内容。
对于大量创意共享、开源和其他许可内容而言,情况并非如此。
(附注:许多相同的人群(信息应该自由的人、jstor 抗议者、GPL 狂热者)提倡的许可和分发,现在却反对大语言模型(LLMs) 使用这些内容。
> GPL 狂热者
如果大语言模型(LLM)供应商在摄入 GPL 数据后,按照许可证的精神,在 GPL 下发布他们的模型,那么 GPL 狂热者肯定会更高兴,但我们都知道,这种情况不会发生。
坦白说,关于“激进抓取”的讨论大多集中在每天10万页的范围内(即约每秒1页,也就是“微不足道”的水平)。在我看来,云服务提供商离谱的出站带宽限制才是问题的根源。
我发现华为和腾讯的IP地址一直在重复抓取同一张图片,只是使用了不同的查询参数。当然,这张图片只有260KiB,而且我没有使用亚马逊、GCP或Azure,所以这并没有花我一分钱,但它仍然占用了我的日志空间,并不断消耗我的服务器资源。
这些机器人不断回来,無視HTTP状态码、永久重定向,以及我能想到的其他任何方法来告诉它们滚开。robots.txt显然没有帮助。过滤数据中心的流量也没用,因为在我这样做后不久,住宅IP也开始做同样的事情。我不知道这是中国ISP滥用其IP范围,还是中国本身存在大规模机器人网络问题,但无论如何,传统方法都无法消除这些机器人。
最终,我现在屏蔽了中国和新加坡的所有流量。这暂时阻止了无休止的垃圾请求,尽管我看到一些熟悉的用户代理也出现在其他东亚国家。
所以确保图片只在带有正确缓存标头的唯一规范 URL 上可用?不,显然唯一的解决方案是安装会恶化普通用户体验的垃圾软件。
同意。网站运营商应该认真审视为何其未优化的垃圾代码无法处理如此低的请求率,而不是通过部署像Anubis或Buttflare这样的垃圾软件来加剧网络的垃圾化。
我一直在阻止一些爬虫访问我的Gitea服务——不是因为它过载了,只是想看看会发生什么。他们从<repo>/commit/<repo中的每个SHA256>/<repo中的每个文件路径>获取的数据并不准确。如果他们真的想要数据,可以运行“git clone”。
我刚查了一下,因为有人在IRC上提到了抓取。Facebook每秒向我发送大约3个请求。我屏蔽了他们的用户代理。一个使用Googlebot用户代理的抓取工具也在做同样的愚蠢抓取模式,但我没有屏蔽它。另一个人每5秒发送一次请求,使用
当前网络上一个有趣的现象是,网站被期望让自己易于抓取。我的工作应该是组织网站,以防止抓取工具尝试抓取每个提交和文件路径的组合。
作为一个出于正当用途进行抓取/爬取的人,我对这一发展感到非常不满。我理解人们有正当理由不希望自己的内容被抓取。也许他们想出售内容——我能理解这一点,尽管我不喜欢。也许他们出于根本原因反对抓取。我个人希望自己的内容能被尽可能广泛传播。我希望自己的观点能被纳入人工智能系统,以便触达更多人群。当然,这只是我撰写特定内容时的立场,他人可能有不同目标。
当你拥有抓取某物的权利时,却发现网站管理员懒得为你放宽速率限制,也没有人能提供一个友好的API,这确实令人烦恼。现在,人们甚至将他们的开放教育资源、开源软件,甚至那些他们希望全世界都能阅读的关于开放性的论文,都藏在了Anubis之后。这让我摇头叹息。
我完全理解,当质量低劣的机器人频繁访问你的网站时,确实令人烦恼。但或许问题出在HTTP协议和这些机器人本身。也许我们应该让网站所有者更容易地将内容推送到某个地方,以便我们能更轻松地抓取?
如果你以合理的速度抓取数据且不清除会话cookie,你的抓取工具可以像普通用户一样解决Anubis POW问题,这样就没问题了。Anubis是针对以荒谬速度发起请求的分布式抓取工具设计的。
这听起来像是IPFS可以提供良好解决方案的问题。
> 我理解人们有正当理由不希望自己的内容被抓取。也许他们想出售内容——我能理解这一点,尽管我不喜欢。
坦白说:这不是你的内容,是他们的,无论你喜不喜欢,他们有权决定如何处理,你无权干涉。当然有些情况下你个人有权抓取,或许可证明确允许,但这并非常态。
更大的问题不是人们不希望自己的内容被阅读,而是他们希望内容被人类阅读和消费,并且希望服务器资源(网络带宽、CPU等)以可控的方式使用。如果这些机器人被设计得更尊重用户,也许我们就不会陷入这种境地。这些机器人破坏了规则,他们的行为也影响了那些尊重规则的机器人。
我之前见过类似情况,当年有些网站利用用户基础进行比特币挖矿,引发了轩然大波。
如果有人重新启用相同工具,并成功让阿尔特曼为他们买辆好车,那也算他们厉害:)
另一个想法:如果你的内容是~5KB的文本,那就把它提供给任何请求它的人。如果你没有带宽,试着让它更小、更静态,并把它放在边缘,其他人的电脑上。
没错,如果你有带宽来运行你的工作量证明脚本并检查结果,那么你也有带宽来简单地提供经过优化的内容。
网络的有趣又可怕之处在于,“陷入困境的明星”这一情节可能成真,且往往在你最意想不到的时候发生,比如,你知道的,当你收到一个HN死亡之吻时。
你可以肯定静态内容是静态的,不会在每次访问时对图像运行 jpegoptim(动态 CMS + 字节跳动突然访问 = 你的服务器被 DDoS 攻击),但你不能指望这个星球上的任何白痴或白痴群体为一个小型网站搭建多国边缘缓存服务器架构,以防某篇博客文章每十分钟获得几百万次访问。这甚至可能让静态内容的服务器崩溃。
我同意Anubis是个糟糕的解决方案,但联合国仍在使用它来应对请求洪流。
基于流行的流量峰值通常非常短暂,小型网站无需过多关注。
我的例子有些肤浅,但你不应专注于这个用例。小型网站并不总是意味着“可忽略的信息”,而爬虫程序始终在窃取CPU时间。
嗯,这似乎对环境不利。
AI抓取、充斥大量文本的臃肿JavaScript页面、广告、现有验证码等,这些都浪费能源却对终端用户毫无益处,我们大多只能接受或使用广告拦截器。我看到有人抱怨PoW方案让低功耗设备难以运行且浪费能源,这确实如此。但现状同样令人烦躁地浪费人类时间,且常伴随隐私噩梦。
如果我们将部分网站后端工作负载转移到机器人上, effectively 将其用作去中心化云基础设施,会怎样?Web3,我们已经落后了
大多数爬虫无法监控每个网站的性能,结果就是网站响应速度变慢,仅此而已
另见 http://www.hashcash.org/,这是一个著名的工作量证明算法。工作量证明的最大好处不是它反大语言模型(LLM),而是它无状态地反 DoS。
我正在开发一个公共服务,并计划在其中使用一个简单的工作量证明实现,该实现可通过单次调用完成,无需每次请求都与服务器进行往返通信。
我也做过类似尝试。PoC 确实可行,但无状态性确实成为了一大障碍。
它强制要求客户端在每次请求时都执行工作量证明。
我们在PoC中发现的其他困难包括:
并非所有客户端都是平等的:这会让老旧的手机或树莓派比运行在配备GPU的强大服务器上的客户端,或运行在受损硬件上的客户端受到更严厉的惩罚。——即真实用户很可能受到惩罚,而非法用户往往受到的惩罚最轻。
并非所有端点都相同:我们尝试了对POST/PUT/PATCH/DELETE等操作设置更高的难度,而对GET操作则设置较低的难度。同时,我们对不同端点设置了不同的难度级别,试图匹配这些操作对我们而言的成本差异。这需要通过多次往返来交换难度设置。
这会阻碍正确的HATEOAS或REST设计,因为客户端本应通过跟随链接浏览API,却鼓励了“在单次查询中包含尽可能多内容”的调用方式。这削弱了我们的缓存能力、灵活性,并阻碍了良好HTTP实践的运用。
我的小提琴对这个问题微不足道。但它实际上给了我灵感!
这本质上就是DRM:可以观看,但不能复制。只不过在这种情况下,是企业自己在进行盗版。
“此页面加载时间过长”——在采用反爬虫技术的站点上。不想要。
通常来说,如果你是从一个“干净”的IP地址访问,难度不会很高。未来如果这些系统以某种方式协调(DHT?),应该可以进一步降低基础难度。
这是垄断者扩大护城河的完美工具。
与电子邮件技术上仍为联邦制和分布式,但实际上被少数大型科技公司通过“打击垃圾邮件”垄断的情况类似。
> 总的来说,如果你使用的是“干净”的IP地址,你的难度不会很高。
除非你使用的是非垄断选择的操作系统或浏览器。
别再提什么某些客户端比其他客户端更好的想法了。
这与IP声誉毫无关系,你混淆了无关的概念。
[已删除]
不,但这也不重要是谁的错。这种情况发生可能会减少你的流量。这可能值得权衡,也可能不值得。但如果人们说“不要!”,那就值得注意。
文章中提到的那个是因为大语言模型(LLM)抓取器对某人的服务器进行了DDOS攻击。如果对所有人来说都无法使用,那么让所有人稍等片刻以解决问题显然是一个改进。
> 无论是谁的错都无所谓
人们总是会责怪某人,而且他们有种怪异的才能,总能把责任归咎于错误的一方。对于cookie弹窗,他们责怪欧盟而不是那些实际上出卖他们的网站,在这里,他们可能会转而责怪网站运营商为自己辩护。对于那些不仅运行爬虫程序还运营社交网络的公司来说,通过算法控制叙事非常容易。
>对于cookie弹窗,他们责怪欧盟而不是那些实际上出卖他们的网站
欧盟制定了有缺陷的立法,欧盟制造了漏洞,欧盟的实施和执行都很糟糕,网站选择了最明显和可预测的道路。那么,谁应该为更糟糕的体验负责?
> 如果对每个人来说都无法使用,让每个人等待一段时间来解决问题显然是一个改进。
我同意。
> 人们总是会责怪某人
我同意。这就是我的观点。
> 这可能会减少你的流量
这就是重点。一些网站被爬虫攻击,显然他们不希望这样的流量。
我指的是“真实”流量。也许这并不明显。
[已删除]
从打开网站时它们从头开始构建自身而非仅仅使用HTML和CSS的数量来看,如果你不执行JavaScript,你将无法获得太多内容。
即使在反抓取措施之前,许多单页应用(SPA)网站在你不运行JavaScript时也不会提供任何内容。
这是关于用于训练大语言模型(LLMs)的抓取工具,而不是实时大语言模型(LLMs)使用的抓取工具。
即使是实时使用的抓取工具,为什么不能/不会运行某种启用了 Javascript 的无头浏览器,而不是只是发出 HTTP 请求并查看 HTML 代码呢?
这就是重点,实时进行的抓取可以使用完整的浏览器,性能并不是一个重要问题。
用于训练模型的抓取则处于完全不同的规模,(可能)无法承受在每个抓取页面上增加的PoW成本。这就是这些工具针对的抓取。
你抓错了重点。该方法是阻止任何不执行JavaScript的请求。JavaScript会生成一个密钥,使你的查询能够正常工作。没有JavaScript => 没有密钥 => 没有可抓取的内容。
这是核选项。没人受益。网站运营商可根据需要调整难度以遏制滥用抓取工具。
[已删除]
压缩炸弹是恶意的。验证码对人类来说很烦人。系统或用户验证都是纯粹的邪恶。工作量证明没有这些问题。
Zip炸弹会占用一些内存。我对向明确无视“禁止进入”标识的客户端(更具体地说,是故意进入的客户端)提供Zip炸弹没有任何问题。(此外:这本质上是一种蜜罐设置,这种概念并不新鲜;人们也会在SSH和其他场景中使用类似方法。)