网页 综合 更新时间 2026-11-15 02:45:30

Cloudflare错误1010与401区分及修复:四请求头解决方案 | dhseadev.online

自动蜘蛛 blogger.cn 正文约 1210 字
Cloudflare错误1010与401区分及修复:四请求头解决方案 | dhseadev.online
最初发布于 dhseadev.online。
我因为一个从未出错的凭证浪费了一个小时。
任务很小:通过供应商的代表性状态传输(REST)应用程序接口(API)搭建一个只读的模型上下文协议服务器,这样助手就可以读取工作记录,而无需我将电子表格导出文件粘贴到聊天窗口中。供应商使用客户自己的应用程序接口密钥通过超文本传输协议基本认证进行身份验证。只需两行 urllib 代码。午餐前就能搞定。
Cloudflare 错误 1010 并非身份验证失败。 它是在 Cloudflare 边缘节点发出的浏览器签名禁令——“本网站所有者已根据您的浏览器签名禁止您的访问”——而 Python 默认的 User-Agent 足以触发此禁令。
请求从未到达应用程序接口自身的身份验证层。这就是为什么你尝试的每个凭证都以相同的方式失败。解决方法是添加四个请求头,而不是更换一个新的密钥。
如果这解决了你下午的问题,你可以停止阅读了。剩下的部分是我觉得更有用的内容:如何仅从失败现象中判断出,你并没有在与你认为正在通信的对象进行交互。
我做了每个人都会做的事。将密钥作为用户名,密码留空;将密钥作为持有者令牌;将密钥放在 X-API-Key 请求头中。重新检查了 Base64 填充。重新生成了密钥。再次尝试。
六种变体。每一个都返回了 403 和 error code: 1010。
这看起来像是权限问题。这时你开始起草一封电子邮件给支持团队,询问你的密钥缺少哪个作用域,时间就这样流逝了。
身份验证层的作用是区分差异。这是其全部职责所在。
格式错误的请求头不应以与携带已撤销密钥的有效请求头相同的方式失败,后者也不应以与有效密钥访问其无法看到的端点相同的方式失败。这是三种不同的情况,一个合格的身份验证层会对它们给出三种不同的回应。
当六个实质不同的请求产生字节级完全相同的响应时,说明没有任何程序在读取这些字节。答案来自挡在你试图通信的对象前面的某个东西。
这一规律不仅适用于 Cloudflare,这也是值得记住的部分:在不同输入下出现完全相同的失败输出,意味着输入未被检查。 改变一些本应影响结果的因素。如果错误信息没有变化,说明你在调试错误的层级。
在这种情况下,挡在前面的东西是 Cloudflare 的浏览器完整性检查。Python 标准库将自己标识为 User-Agent: Python-urllib/3.x,而用户代理请求头是边缘节点进行过滤成本最低的指纹特征。仅凭这个字符串,我发送的每个请求都被丢弃了
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
Copyright ©2022-2024 2B2C 版权所有 浙ICP备16025413号-9 营业执照
访问原文 返回搜索 https://blogger.cn/article/5758458146543992.html
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。