You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带通配符的CORS URL匹配规则及合规校验需求

如何校验符合特定规则的CORS允许URL?

嘿,针对你需要筛选满足特定规则的CORS允许URL的需求,我整理了一套清晰的方案,包括规则拆解、示例对比和实用的验证正则,帮你精准搞定这个问题:

核心规则拆解

  • 协议限制:仅允许http或https协议,其他协议(如ftp、ws等)一律不通过
  • 特殊主机支持:允许localhost作为主机名,同时支持合法的IPv4地址(比如127.0.0.1)
  • 主机字符规则:主机名中可包含-字符,但不能出现其他非合法域名字符(除了通配符*和分隔用的.)
  • 通配符规则:仅支持*匹配整个子域名段或整个后缀段,比如*.example.com是合法的,但m*y.example.com这种仅部分匹配分段的通配符不允许
  • 顶级域名(TLD)要求:必须存在有效的顶级域名,不能出现http://example这类无后缀的URL
  • 段长度限制:URL中每个主机分段(协议后的各部分)的长度必须在1到63字符之间,超长分段直接判定为非法

合法URL示例

  • https://localhost.localdomain
  • http://127.0.0.1
  • http://*.example.com
  • https://my-sub-domain.example-co.uk

非法URL示例

  • ftp://example.com(使用了非允许的协议)
  • http://m*y.example.com(通配符仅部分匹配子域名段)
  • http://this-is-an-extremely-long-segment-that-is-way-more-than-sixty-three-characters.example.com(主机分段长度超过63字符限制)
  • http://example(缺少必填的顶级域名)

实用验证正则表达式

你可以用下面的正则表达式来快速验证URL是否符合规则:

^(https?://)(localhost|(\*\.([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z0-9-]{2,63})|(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z0-9-]{2,63})|(([0-9]{1,3}\.){3}[0-9]{1,3}))$

正则简要说明

  • ^(https?://):精准匹配开头的http://或https://协议
  • localhost:单独匹配localhost主机名
  • (\*\.([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z0-9-]{2,63}):匹配带通配符的域名,确保*占据整个子域名段,且所有分段长度符合1-63的要求
  • (([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z0-9-]{2,63}):匹配常规多级域名,保证每个分段长度合规且存在有效TLD
  • (([0-9]{1,3}\.){3}[0-9]{1,3}):匹配IPv4地址(注:这里是基础匹配,若需严格校验IP范围(如0-255),可以进一步调整正则)

内容的提问来源于stack exchange,提问作者Cortlendt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:53:15