【油猴开发指南】关于Vue3的劫持注入点(二)
除了从createApp的Object.assign劫持外通过观察还可以发现use也是开发者常用的API
其源代码为
```js
use(plugin, ...options) {
if (installedPlugins.has(plugin)) {
warn$1(`Plugin has already been applied to target app.`);
} else if (plugin && isFunction(plugin.install)) {
installedPlugins.add(plugin);
plugin.install(app, ...options);
} else if (isFunction(plugin)) {
installedPlugins.add(plugin);
plugin(app, ...options);
} else {
warn$1(
`A plugin must either be a function or an object with an "install" function.`
);
}
return app;
}
```
可以看到使用了`installedPlugins`而该变量是一个WeakSet
```js
const installedPlugins = /* @__PURE__ */ new WeakSet();
```
可知针对WeakSet进行劫持得到Plugin,对Plugin进行一层包装依然可以实现夺取appContext对象 ggnb!又突破一个点了 nb,学习,我们有个系统前端vue的,很多乱七八糟的问题,想自己写个脚本避开那些bug damnedvi 发表于 2025-4-10 08:28
nb,学习,我们有个系统前端vue的,很多乱七八糟的问题,想自己写个脚本避开那些bug ...
还不如殴打前端让他改了!
页:
[1]