全部新增改进修复
修复

Browser 在 Cloudflare 验证通过后捕获真实状态

当受 Cloudflare 保护的目标在验证通过后返回真实的地理位置封锁页面 (451) 时,Browser 产品之前会将其报告为 200,因为 watcher 硬编码了验证通过后的状态。现在,watcher 会读取验证通过后的实际 Document,因此 200 仍保持为 200,451 会显示为 451,同时 Auto 会拒绝错误的内容,并继续寻找真正符合您的 validate 规则的出口。

修复

Cmd+K 可在非拉丁键盘上打开

无论使用何种键盘布局,Cmd+K (Ctrl+K) 快捷键现在均可打开命令面板和搜索模态框。此前我们匹配的是输入的字符(在西里尔布局下为 к),因此使用非拉丁布局的用户无法触发任何操作。现在我们匹配物理按键。该修复已应用于主站、博客和文档。

修复

Auto 在冷解析时使用全部预算

一次冷 Auto 解析可能需要数分钟,该 request 现在会在整个预算期内保持打开状态。来自任何层的错误都将作为客户端可解析的 JSON 返回。

修复

重复请求自动降至 2 积分

支持复用 cookie 的网站(以 bet365 为测试基准)之前一直停留在昂贵的浏览器解析(每次请求 15 积分),而不是在首次解析后降至低成本的 2 积分重放。存在两个 bug:任何短暂的传输错误都会触发拦截,且成功的浏览器重放从未刷新会话 cookie。已修复这两个问题。现在,对于支持复用 cookie 的网站,首次解析后的重复请求仅消耗 2 积分,与定价说明完全一致。

修复

已限制 API 的跨域访问

我们已收紧跨域访问权限,仅允许 foura.ai 携带凭证调用 API。我们还加强了 metrics endpoint 的输入过滤器,并移除了一个仅用于开发环境的备用密钥。现有的集成不受影响。

修复

自定义 validate 规则计入成功

如果你在 request 中设置了 validate.status.accept,引擎会将接受的非 200 状态码视为完全成功。Activity 之前仍将这些标记为失败,从而干扰了你的使用统计数据。现在,结果将遵循你的 validate 判定,因此你接受的 403 将显示为成功,而不是 App Fail。

修复

非 UTF-8 页面现可正常解码

如果您之前通过 Single 抓取西里尔文、中文、日文或其他非 UTF-8 页面,返回的 body 往往会显示为乱码。在您看到原始字节之前,我们曾将每个 response 强制解码为 UTF-8。现在,我们从 response 中读取字符集(依次通过 Content-Type、<meta charset>,最后回退至 UTF-8)并进行正确解码。感谢 Alexandar Kanchev (Sensika) 反馈此问题。

修复

捕获将 request 原样回显的虚假 proxy

公开网络中的一些 proxy 实际上并没有转发您的 request。它们将其作为纯文本服务器转储回显,并试图窃取其中的内容。我们现在能在 response 到达您的代码之前识别出这种模式,因此 Single、Browser 和 Proxy Finder 都会返回明确的失败(或重试),而不是垃圾数据。

修复

新发现的 proxy 更快进入 proxy 池

我们修复了一个导致新发现的 proxy 在验证前需要等待的延迟问题。Proxy Finder 现在会立即对它们进行检测,从而使 proxy 池保持最新状态,并有更多活跃、可用的 proxy 处于轮换中。

修复

Playground cookies 遵循 RFC 6265 host-only 规则

Playground 现在可正确跟踪 Domain 属性,因此仅限主机的 cookie 会保留在对应主机上。Parsed 视图会使用 HO 标签对其进行标记,而 Raw 视图与上游发送的内容保持一致。

修复

Playground 字段与真实 API schema 匹配

每个 Playground 字段现已与 schema 对齐:Browser 强制使用 GET 请求并隐藏 body 文本域,Raw 选项卡显示发送至 API 的确切 JSON 以及 curl 复现命令。

修复

Unblocker 在 Single 和 Proxy Finder 上实现端到端运行

借助 unblocker: true,Single 和 Proxy Finder 现在将完整的 unblocker 签名直接携带至源站,从而让检查该签名的反机器人防护放行该 request。

修复

Cloudflare 被动挑战在 Browser 上得以解决

某些 Cloudflare 网站会返回 200 OK,但会注入一个后台脚本,并在稍后生成真实的 cf_clearance cookie。Browser 过去会在该 cookie 到达之前返回页面,导致 jar 为空。现在 Browser 会等待 cookie 事件,因此您可以获得干净的 cf_clearance,并可以通过 Single 或 Proxy 进行重放。

修复

博客分页链接现已正常工作

博客上的 Older 按钮以前会使您跳转回第 1 页。现在,分页功能使用带有数字导航的 /blog/page/N/ URLs,以便您可以正常浏览较旧的文章。感谢 Vladimir Petrov。

修复

浏览器在每次 request 中执行 JavaScript

浏览器现在通过 JavaScript 引擎运行每个 request,因此 Cloudflare 质询和重 JS 的页面均可按预期渲染。