Tampermonkey(对于大多数浏览器)和Greasemonkey(对于Firefox)都支持@match
和@include
指令。
当我开始阅读它们之间的区别时,发现@match
更为严格:用户脚本不会在某些地址上启动,这可能被认为具有潜在危险或只是不受欢迎。
由此引发了一个问题:
a)在所有地址上启动我自己的用户脚本是否有任何潜在的风险(即@match *://*/*
,对于@include
)?
或者,b)在某些地址上启动用户脚本的限制仅与第三方用户脚本有关,即从某些站点下载并因此可能包含一些恶意代码的用户脚本?
答案 0 :(得分:4)
在所有地址上运行自己的用户脚本是否存在潜在的风险?是的,很小的一个;见下文。
(当前)不在所有页面上运行 用户脚本的主要原因是:
$(".someclass").remove();
代码只会影响X页,直到没有。头部刮擦,并随后进行可选的诅咒... $.get( "frbyPlay.me/pics?user=admin&pw=1234"...
,错误的站点可以看到它(或AJAX)。请注意,原因1和2也是您应尽可能使用@match
而不是@include
的原因。 @match
解析网址的速度更快,而且在不需要的/意外的网站上触发的可能性也大大降低。
(并且,在Tampermonkey中,@match
在Tampermonkey仪表板中添加了这些小的站点图标。)