浏览器扩展Manifest权限语法解析及同类权限差异咨询
浏览器扩展Manifest URL权限解析
一、URL权限语法规则
浏览器扩展Manifest中的URL权限遵循<scheme>://<host>/<path>的结构,各部分规则如下:
- 协议(scheme):指定允许访问的网络协议(如http、https、file、ftp),
*代表匹配所有协议 - 主机(host):指定允许访问的域名/主机地址,
*代表匹配任意主机;也可指定具体域名(如https://example.com/*)或子域名通配(如https://*.example.com/*) - 路径(path):
/仅匹配主机的根路径;/*匹配主机下所有路径(包括根路径和子路径);路径中的*会匹配任意字符(含斜杠),因此多级/*/*与单/*效果完全一致 - file协议特殊规则:file协议的标准格式为
file:///[本地路径],因此权限需以三个斜杠开头才能正确匹配本地文件系统
二、各权限条目解析
*://*/:允许访问任意协议下任意主机的根路径(仅匹配https://example.com/这类根地址,不匹配https://example.com/page)*://*/*:允许访问任意协议下任意主机的所有路径(涵盖根路径及所有子路径,是最宽泛的网络资源访问权限)*://*/*/*:与*://*/*无实际差异,路径中的多级/*不会增加匹配范围,因为单个*已能匹配含斜杠的任意路径*://*/*/*/*:同上,与*://*/*效果完全一致,属于冗余写法file:///*:允许无限制访问本地文件系统的所有文件和目录(如file:///C:/test.txt、file:///home/user/doc.pdf等)file:///*/:仅允许访问本地文件系统的任意目录根路径(如file:///C:/、file:///home/user/,不匹配具体文件)file://*:属于非标准写法,实际浏览器会兼容解析为与file:///*等价,允许访问所有本地文件file://*/*:同样是非标准写法,效果与file:///*一致,无额外限制http://*/*:仅允许访问HTTP协议下任意主机的所有路径,不包含HTTPS资源https://*/*:仅允许访问HTTPS协议下任意主机的所有路径,不包含HTTP资源https://*/ *:无效权限格式,路径部分包含空格,浏览器无法正常解析,无实际作用
内容的提问来源于stack exchange,提问作者AweSte
相关产品推荐
相关产品推荐

