代码之家  ›  专栏  ›  技术社区  ›  john c. j.

在所有地址上运行我自己的用户脚本有风险吗?

  •  2
  • john c. j.  · 技术社区  · 6 年前

    @match @include 指令。

    当我开始读到他们之间的区别时,我发现 @匹配

    a) 有吗 有没有潜在的风险 我自己的 打开用户脚本 地址 (即。 @match *://*/* 对我来说也是一样 )?

    第三方 用户脚本,即从某些站点下载的用户脚本,因此可能包含一些恶意代码?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Brock Adams    6 年前

    在所有地址上运行自己的用户脚本是否存在任何潜在风险?是的,一个小的;见下文。

    你自己的 所有页面上的用户脚本都是:

    1. 浏览器性能: 加载和运行脚本需要时间、CPU周期,有时还需要磁盘访问。通常情况下,延迟几乎不明显,但是如果它没有执行有用的服务,为什么还要延迟呢?
    2. 你认为你的 $(".someclass").remove();
      其他常见的副作用包括 script clashes that lead to page or userscript failures
    3. iframes(帧):
      这是性能和副作用问题的乘数。
    4. 使用 $.get( "frbyPlay.me/pics?user=admin&pw=1234"... ,在非沙盒代码和错误的网站可以看到它(或AJAX)。
      当使用页面的JS时,攻击的途径是无限的。幸运的是,这通常是一个非常低的风险,很容易减轻,但无知或自满会导致严重的尴尬。
    5. a formerly much loved and trusted extension turned evil .
      当脚本使用的某个库(如jQuery)遭到黑客攻击或“商业优化”时会发生什么情况?脚本运行的页数越少,恶作剧的机会就越少,伤害的扩散也就越小。
      (当然,如果猴子自己长了山羊胡,那我们就不管了。)

    请注意,原因1和2也是您应该使用 @match 尽可能多而不是 @include . 更快地解析web地址,而且在不需要的/意外的站点上触发的可能性也非常小。
    (而且,在坦佩尔, @匹配