- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(注:是的,这是一个荒谬的问题,如果这个问题的答案是“否”,我完全不会感到惊讶。也就是说:)
我编写了一个 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/
我在我的 UIPath 项目中实现了一个普通的“for each”循环(不是每行特定的 excel)。 for-each 循环使用以前从 excel 文件中检索到的数据查看数据表。 然后,for-ea
我认为我的 SQL 查询花费的时间太长,现在看起来大约需要 30 秒。我有两个表,Record 和 Mainrecord。我想获取有关列金额中包含 0 的所有 Mainrecords 的信息,并且在这
这个编辑器是水平的http://tinymce.moxiecode.com/examples/simple.php我似乎只找到水平编辑器,有人遇到过垂直编辑器吗?有什么例子吗? build 需要多长时
我想创建一个跟踪任务时间的 ASP.NET WinForms 应用程序。我需要能够编写表单,以便将任务添加到数据库、在新选项卡中打开它,以及能够开始、暂停和停止任务。完成后,我需要计算完成任务所需的时
抱歉,我是 C 的新手。但我做错了什么?几乎尝试了一切,但仍然无法计算执行 t1 和 t2 之间的代码所传递的秒数,总是返回我在 0.00 秒内完成。感谢您的耐心等待:) #include cloc
我有 2 个简单的函数(在一个范围内循环)可以单独运行而没有任何依赖性。我正在尝试使用 Python 多处理模块和多线程模块来运行这 2 个函数。 当我比较输出时,我看到多进程应用程序比多线程模块多花
尝试记录使用装饰器运行函数所需的时间,但我误解了一些东西。它拒绝写登录装饰器。 当你颠倒装饰器的顺序时,它会导致模板上的构建错误(就像信息丢失一样)。 在我的初始 py 中: if app.debug
我听说 System.out.println(); Java 语句是昂贵的(它消耗了很多时间) 所以我试着评估一下它的成本: 当我评估 5 个语句时...成本 = 1.0 所以我预计 1 条语句的成本
我正在使用 codeigniter REST-API(作者:philsturgeon 引用 URL: https://github.com/philsturgeon/codeigniter-rests
我在 SFML 中有一个时钟和计时器,它测量秒数。我试图在经过一定秒数(特别是 4 秒)后执行下一个操作 这是我的代码 #include "stdafx.h" #include "Splash
例如,我们在 SomeActivity 中,该 Activity 有一个按钮,用于调用将文件从一个目录移动到另一个目录(我们称之为作业)。 在黑莓手机上我会: 推送一个不可取消的弹出窗口(对话框屏幕)
我正在尝试从大小为 7,140,000 的 ArrayList 中删除 140,000 个对象。我预计这会花费几秒钟(如果那样的话),但 Java 每千个对象花费几秒钟。这是我的代码:
我得到了这个查询,它占用了我的 elapsed_time 并且工作正常,但后来我意识到我得到的 actual_elapsed 的值是错误的。 actual_elapsed 是我使用 TIMEDIFF(
我在更新面板中放置了一个 GridView。 当用户按下按钮时,gridView 将被一个数据表填满: GridView_Overview.Da
客户想要将数据库从 MS SQL 转换为 MySql。 就我个人而言,我不会这样做,我更喜欢使用 MS SQL 来处理大型数据库,并且喜欢使用 MSSQL 时可用的工具。 但是我确实在较小的项目上使用
我目前正在为一个 Julia 项目使用 Graph Database,使用 Redis。 有时 Redis 请求需要 300 毫秒才能执行,我不明白为什么。我运行了一个简单的请求 10.000 次(请
我们在一次运行中处理了 500 万个请求。然而,在运行期间,很少有请求失败。验证关闭后,我们了解到 Full GC 已启动,并且花费了超过 40 秒(到 60 秒),从而导致超时。 配置:我们有 3
我是一名优秀的程序员,十分优秀!