CORS 跨域检测
CORS Tester
从你指定的来源发出浏览器会发的预检请求,再带上同一个 Origin 发一次 GET,并按 Fetch 标准的规则说清究竟是哪个响应头把它挡住了。
控制台里的 CORS 失败会点出缺的是哪个响应头,却几乎从不说原因,而浏览器实际发出的请求也不是你代码里写的那个。这里从你选定的源发出浏览器会发的预检请求,再发一个带着该 Origin 的 GET,然后按 Fetch 标准的规则解读结果。
这个请求由我们的服务器代你发出。送到服务器的只有你输入的网址、页面来源、方法和头字段名,你的 Cookie 和登录状态都不会跟着走。服务器只连接公网地址,私有地址和内网地址一律拒绝。
怎么用
输入 URL 和源
源是请求“从哪里发出”的那个站点——发起调用的页面,不是 API。把这两个填反,是测试结果和浏览器不一致最常见的原因。
加上你真正使用的方法和请求头
预检只在非简单请求时发生。触发它的是 `Content-Type: application/json` 或者 `Authorization` 头,所以漏掉它们,测的就是一个你从来不会发的请求。
读是哪条规则失败了
结果点出具体是哪项检查——源不被允许、方法未列出、请求头未列出、凭据配上了通配符源——而不是报一个笼统的失败。
常见问题
这里通过了,浏览器还是拦着。
确认方法、请求头和凭据模式和你代码发出的完全一致,并且服务器不会按 cookie 或 user agent 改变响应。这里是从服务器上发起的,所以一个依赖于你手上某个会话的响应,会和这里不一样。
为什么 `Access-Control-Allow-Origin: *` 配 cookie 不行?
标准禁止这样。用 `credentials: 'include'` 时,源必须原样回显,并且必须有 `Access-Control-Allow-Credentials: true`。通配符加凭据被拒绝是设计如此,不是 bug。
这是在我的浏览器里运行的吗?
不是——它从服务器上运行,因为浏览器发不出那个被 CORS 拦下的请求。这意味着它看到的是公开的响应,没有你的 cookie,也没有你的网络位置。
能测内网地址吗?
不能。请求从一台到不了你网络的服务器发出,只在你网络内部才能解析的地址,不管 CORS 配得怎样都会失败。
可以从这些接进来
CSP 内容安全策略生成
CSP Builder
按引导表单或一份违规报告生成 Content-Security-Policy,并逐条解释每个指令。
安全响应头体检
Security Header Scan
给站点的 HSTS、CSP、框架、referrer 和权限相关响应头打分,并说明还该补上哪些。
密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
动态口令生成
TOTP Code Generator
把 TOTP 密钥换成当前的六位验证码并带倒计时,用来验证两步验证配得对不对。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSP 内容安全策略生成
CSP Builder
按引导表单或一份违规报告生成 Content-Security-Policy,并逐条解释每个指令。
HTTP 请求调试
HTTP Request Builder
构造并发出带自定义请求头和请求体的 GET/POST/PUT/PATCH/DELETE/HEAD 请求,显示状态码、响应头、响应体和耗时,且从不转发 Cookie 和 Authorization。
HTTP 响应头检测
HTTP Header Inspector
请求一个网址,列出完整的响应头、跳转链路、各段耗时和实际用到的压缩方式。
安全响应头体检
Security Header Scan
给站点的 HSTS、CSP、框架、referrer 和权限相关响应头打分,并说明还该补上哪些。
CSV 清洗
CSV Cleaner
去掉单元格首尾空白、统一表头、修正数字和日期格式,并报出列数对不上的行。
CSV 表关联(VLOOKUP)
CSV Join
按键列做内连接、左连接、右连接或全连接,并把没匹配上的行单独列出来。