当前位置: 首页 > 网络应用技术

您不知道JavaScript中劫持功能吗?

时间:2023-03-06 01:40:13 网络应用技术

  最近,我看到了业务的逻辑。找到了很长时间后,我没有发现它是如何触发的。后来,我发现实际上使用了劫持功能,大致如下:

  大致实现的逻辑是在调用保存日志时执行自己的逻辑,例如格式化,通知等。

  函数劫持,在运行函数之前对其进行了劫持,添加我们想要的功能。当此功能实际运行时,它不再是原始函数,而是添加到我们的功能。这也是我们常见的挂钩函数之一。

  如上所述,一般函数劫持将分为三个步骤:

  一开始,我看到上面的代码,但仍然有疑问。将值重新分配给Savelog时,您不会更改Originsavelog的参考方向吗?实际上,它只会将Savelog指向另一个参考地址。

  很容易理解以下示例:

  基本:当两个对象指向相同的地址时,修改特定对象的属性,另一个对象将相应地更改

  基本:当新对象分配给对象变量时,对象变量指向新对象的参考地址,以及与旧参考的相关性

  例如,上面的第一个示例,在原始功能上,实现特定的逻辑。

  通常,XSS攻击将使用输出信息的方法首先测试。目前,我们可以劫持原始内容,输入跟踪信息的代码,最后执行原始功能。

  如下:

  在Mock.js中,是劫持本机XMLHTTPRequest(或ActiveXobject)以确定是否存在匹配的数据模板。如果找到它,请拦截XHR请求执行与其自己规则相对应的逻辑的逻辑。如果找不到匹配的数据模板,则本机XHR发送请求。请详细介绍。

  JavaScript中的功能性劫持是一种增强原始功能的技术。通常,我们用来增强原始JavaScript全局方法的某些功能。

  原始:https://juejin.cn/post/7103837916274622494