极难利用的XSS(CVE-2023-22462)

13 篇文章 0 订阅
2 篇文章 0 订阅

前言

本身XSS的利用成本就很高,选哟用户交互才可以实现,再加上React的呈现周期,就更难利用了。

原因

React组件的生命周期分为三个阶段:

挂载阶段:在这个阶段,组件被创建并且插入到DOM中。React提供了三个生命周期方法:

constructor(): 构造函数,组件被创建时调用,用于初始化组件的状态(state)和绑定事件处理函数(可以使用箭头函数代替)。

render(): 渲染函数,必须定义,返回要显示的内容(React元素或组件)。

componentDidMount(): 组件挂载到DOM后调用,可以在这里进行异步数据获取等操作。

更新阶段:在这个阶段,组件的状态或属性发生了改变。React提供了五个生命周期方法:

shouldComponentUpdate(): 组件即将更新时调用,可以返回一个布尔值,用于决定是否需要更新组件。

render(): 同挂载阶段。

getSnapshotBeforeUpdate(): 组件即将更新前调用,可以在这里获取更新前的DOM状态。

componentDidUpdate(): 组件更新完成后调用,可以进行DOM操作等操作。

componentWillUnmount(): 组件将要卸载前调用,可以进行资源清理等操作。

卸载阶段:在这个阶段,组件被从DOM中卸载。React提供了一个生命周期方法:

componentWillUnmount(): 同更新阶段。
需要注意的是,componentWillMount()和componentWillReceiveProps()这两个方法在新版的React中已经被标记为过时,推荐使用constructor()和componentDidUpdate()代替。此外,在React v17中,componentWillUnmount()也被标记为过时,可以使用cleanup()替代。

参考:

React官方文档:https://reactjs.org/docs/react-component.html
React生命周期图解:http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
React生命周期详解:https://segmentfault.com/a/1190000016686254
React生命周期与实战:https://www.cnblogs.com/whosmeya/p/13021839.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值