如何从网页通过JavaScript或XHR打开chrome://协议链接?
关于网页中通过JavaScript/XHR打开chrome://链接的可行性
首先直接给结论:不行,Chrome浏览器出于安全机制的限制,普通网页中的JavaScript或XHR请求是无法打开chrome://协议的链接的。
为什么会有这个限制?
chrome://链接属于Chrome的内部特权URL,用来访问浏览器设置、调试工具、历史记录这类敏感功能或信息。如果允许普通网页脚本随意跳转或请求这类链接,恶意网站就可能借此篡改你的浏览器配置、窃取隐私数据,这显然会带来极大的安全风险。
你提到书签或地址栏输入能打开,这是因为这些操作是用户主动发起的,浏览器会认为这是用户的明确意图,而非脚本的自动行为,所以会放行。但网页内的脚本触发的跳转(比如window.open('chrome://chrome-urls'))或者XHR请求这类地址,都会被浏览器直接拦截。
有没有例外情况?
如果你是开发Chrome浏览器扩展,那情况就不一样了。扩展拥有更高的权限,只要在manifest.json中声明了对应的权限,就可以通过Chrome的扩展API(比如chrome.tabs.create({url: 'chrome://chrome-urls'}))来打开这类内部链接。但对于普通的网页,没有任何绕过这个限制的合法方法——强行尝试的话,要么被浏览器拦截,要么直接报错。
内容的提问来源于stack exchange,提问作者Joseph Lust
相关产品推荐
相关产品推荐

