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

约翰·乔

Tampermonkey(对于大多数浏览器)和Greasemonkey(对于Firefox)都支持@match@include指令。

当我开始阅读它们之间的区别时,事实证明它@match更为严格:userscript将不会在某些地址上启动,这可能被视为潜在危险或只是不受欢迎的。

由此产生了一个问题:

a)所有地址(即和相同启动我自己的用户脚本是否有潜在的风险@match *://*/*@include

或者,b)在某些地址上启动用户脚本的限制仅与第三方用户脚本有关,即从某些站点下载并因此可能包含某些恶意代码的用户脚本?

布罗克·亚当斯

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

当前(不在所有页面上)运行自己的用户脚本的主要原因是:

  1. 浏览器性能:加载和运行脚本需要时间,CPU周期,有时还需要磁盘访问。通常,延迟几乎不会引起注意,但是,如果延迟未提供有用的服务,为什么还要完全延迟呢?
  2. 意外的副作用:您认为您的$(".someclass").remove();代码只会影响X页-直到不会。头部刮擦,然后进行可选的诅咒...
    其他常见的副作用包括导致页面或用户脚本失败的脚本冲突
  3. iframe:默认情况下,脚本在iframe上运行,并且某些页面上有数十个iframe和/或iframe嵌套了多个级别。
    这是性能和副作用问题的乘数。
  4. 风险:敏感代码泄漏:$.get( "frbyPlay.me/pics?user=admin&pw=1234"...在非沙盒代码中使用,错误的站点可以看到它(或AJAX)。
    使用页面的JS时,攻击的途径是无限的。幸运的是,这通常是极低的风险,可以轻松缓解,但是无知或自满会导致严重的尴尬。
  5. 风险:接触“绝命毒师”:最近,一个以前广受喜爱和信任的扩展名变成了邪恶
    当您的脚本使用的某些库(例如jQuery)遭到黑客入侵或“商业优化”时,会发生什么?脚本运行的页面越少,出现恶作剧的机会就越少,并且损害扩散越小。
    (当然,如果Tampermonkey自己长大了山羊胡子,那么无论如何我们都会被认捐。)

请注意,原因1和2也是您应尽量使用@match而不是的原因@include@match解析网址的速度更快,并且在意外/意外站点上触发的可能性也大大降低。
(然后,在Tampermonkey中,@match将这些小站点图标添加到Tampermonkey仪表板中。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Google表单和脚本是否可以创建一个脚本,该脚本将限制用户在所有比例输入中可以给出的点数?

pytest-是否可以在所有测试脚本之间运行脚本/命令?

应用脚本:如何在所有行上运行类似的脚本?

ImageResizer .Net免费版本是否在所有图像上强制使用无缓存头?

在所有用户的Shell登录上运行脚本

在 EMR 上安装应用程序后,在所有节点上运行脚本

在所有子目录中的特定文件上运行脚本

UID 1用户是否在所有系统上都是“守护程序”?

Chrome 扩展,让内容脚本在所有页面上运行?

新手:为Google工作表编写脚本,该脚本将在所有工作表上运行

iptables是否在所有用户中同时工作?

GSheets:脚本运行非常缓慢,有时无法在所有工作表上执行任务

在所有子代都更新之后,componentDidUpdate是否运行?

显示用户每天在所有任务上花费的时间

在所有群集节点上创建用户

在运行Ubuntu时将我的Linux内核更新到最新的稳定版本是否有风险?

在所有工作表上运行我的宏

jQuery-在所有项目上运行keyup函数

在所有邮箱(帐户)上运行Outlook规则?

如何在所有模块上运行pytest?

在所有架构Postgres上运行查询

在所有推送的文件上运行预提交挂钩

在所有文档就绪处理程序运行之前,用户是否可以与我的网站进行交互?

在所有情况下,httpd是否都需要以root用户身份运行?

DM脚本是否有惰性评估?

动态库在所有程序中是否具有相同的虚拟内存地址?

在所有物理(有线)适配器上设置静态IP地址

如何在所有工作表上运行此excel脚本?删除整个工作簿中的所有超链接

以登录用户身份运行Windows服务是否有重大风险?