CORS 测试器与策略分析器
在浏览器中测试 CORS,或用任意来源模拟预检请求
请求
通过服务器请求进行模拟,实际结果由浏览器执行。CodingTool 服务器发送预检请求(对 GET、HEAD 方法也会发送该请求),不带 Cookie、请求头的值或请求体,只返回响应头。不保存任何内容。
作为 Origin 请求头发送。测试沙盒页面或本地文件时请使用 null。
每行一个。只有请求头名称会发送到服务器,值留在你的浏览器中。
简单请求:浏览器无需预检即可发送。
检查带 Cookie 或 HTTP 认证的请求规则。不会实际发送任何凭据。
额外发送一次预检请求,使用无关来源 https://cors-probe.example。
结果
响应头
测试后,响应头会显示在这里。
CORS 测试器检查什么?
它说明浏览器是否允许某个来源的网页读取另一个来源的响应,以及原因。策略模拟会评估 Access-Control-Allow-Origin、-Credentials、-Methods、-Headers、-Expose-Headers、-Max-Age 和 Vary: Origin,并将每项检查标记为通过、警告、失败或信息,同时给出相应的响应头值。
浏览器测试还是策略模拟?
浏览器测试从你的浏览器发送真实的 fetch,因此结果就是浏览器的实际执行结果,但来源始终是 CodingTool.dev,被阻止的请求只会返回通用错误。策略模拟会请 CodingTool 服务器使用你选择的来源发送预检,并分析响应头。这是模拟,最终结果由浏览器执行。
浏览器何时发送预检?
如果请求使用 GET、HEAD、POST 以外的方法,使用 CORS 安全列表之外的请求头,或使用 text/plain、multipart/form-data、application/x-www-form-urlencoded 以外的 Content-Type,浏览器会先用 OPTIONS 发送预检。预检必须返回 2xx 状态码,且不能重定向。
凭据与通配符
带凭据时,Access-Control-Allow-Origin 必须指定确切来源,Access-Control-Allow-Credentials 必须为 true。对于带凭据的请求,Allow-Origin、Allow-Methods、Allow-Headers 或 Expose-Headers 中的 * 都按字面处理,而 Allow-Headers: * 从不涵盖 Authorization。宽松的响应头并不自动等于漏洞,本工具报告的是浏览器接受的内容。
网络使用与隐私
浏览器测试的流量只从你的浏览器发往目标。策略模拟会把 URL、来源、方法和请求头名称发送到 CodingTool 服务器,绝不发送请求头的值、Cookie 或请求体。服务器会阻止私有、本地和云元数据地址,每次连接都重新检查地址,不跟随重定向,8 秒后停止,有频率限制,并且不保存任何内容。
