gpt4 book ai didi

xslt - 耗时的 XSLT 而不挂起浏览器?

转载 作者:行者123 更新时间:2023-12-02 08:36:35 25 4
gpt4 key购买 nike

(注:是的,这是一个荒谬的问题,如果这个问题的答案是“否”,我完全不会感到惊讶。也就是说:)

我编写了一个 XSLT 样式表,它故意对 XML 片段执行冗长的、不可并行的计算。它旨在作为 proof-of-work system 的组件在网络浏览器中用作一种不需要用户输入任何输入的验证码——当用户将数据发布到服务器时,计算结果将作为隐藏的表单元素提交。仅当计算值正确时才接受表单内容。 (计算的结构是这样的:服务器可以廉价地为用户提供函数的输入参数,并且服务器无需做大量工作就知道结果,但用户的机器必须花费周期来确定结果。)

转换工作得很好,但不幸的是,在计算过程中浏览器会挂起。由于我的目标是在用户继续使用浏览器时运行此计算,因此这是令人无法接受的烦人行为。 有没有一种方法可以在后台进行转换并让浏览器在运行时可用?我的一个想法是从 iframe 加载源 XML 片段,但我无法获得转换使用这种方法来工作。我想在我进一步反对这个问题之前,我应该在这里问一下是否有人有任何绝妙的想法——如果我试图做一些考虑到浏览器工作方式根本不可能的事情,那么很高兴知道。

我知道我可以用 Javascript 来做到这一点,但如果不必这样做就好了。有什么想法吗?

编辑:伙计们,我知道 recaptcha.net 和其他替代方案。这是一个实验。我的目标是找出理论想法是否可以以对用户来说不太繁重的方式简化为实践。我不是在寻找替代实现,而是在寻找一种不涉及 Javascript 的加密强验证码的方法。 (如果我想使用 Javascript,我会使用 Javascript hashcash 实现之一。)唯一的其他基于浏览器的图灵完备语言是 XSLT。请本着提出问题的精神考虑这个问题。

最佳答案

页面加载后您将无法执行 XSLT 转换,并且无法在没有 Javascript 的情况下在同一页面的表单中使用其结果。我不知道为什么您的 IFrame 解决方案不起作用,但即使它起作用,您仍然需要 Javascript 将结果导入到页面的表单中。

我的建议是使用小型且快速的基于 Javascript 的系统,如果禁用 Javascript,则回退到 reCAPTCHA。您不需要使工作量证明占用大量 CPU,任何自定义解决方案都会摆脱绝大多数(如果不是全部)垃圾邮件机器人。

例如,您的页面可能包含类似的内容

<input type="hidden" name="a" value="123" />
<input type="hidden" name="b" value="456" />
<input type="hidden" name="c" />

并在Javascript中将c的值设置为(a+b)。机器人制造商需要专门针对您的网站调整他们的机器人,以便解决极其简单的验证码问题。如果他们这样做(他们不会),那么添加一个新字段,该字段将定义对 a 和 b 执行哪种操作以获得 c。如果他们再次适应,请更改字段的名称。除非您的网站恰好进入 Alexa 的前 10 名,否则它们很可能不会适应。

关于xslt - 耗时的 XSLT 而不挂起浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1230466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com