Chore(deps): upgrade async-validator from 1.8.1 to 4.0.7
Please make sure these boxes are checked before submitting your PR, thank you!
- [x] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
- [x] Make sure you are merging your commits to
devbranch. - [x] Add some descriptions and refer relative issues for you PR.
Upgrade async-validator to the latest version due to the ReDOS vulnerability in version bellow 4.0.4
please see: https://security.snyk.io/vuln/SNYK-JS-ASYNCVALIDATOR-2311201
Hi @xinguanhua , would you mind merging this PR?
@xinguanhua this is a useful pr
Hi @xinguanhua ,
目前element-ui唯一使用过async-validator的组件为FormItem: https://github.com/ElemeFE/element/blob/2f4f6962c6a4c1e26b734150edaf74c48ff15849/packages/form/src/form-item.vue#L207-L218
我分析过async-validator 1.8.5 和 4.0.7 版本该接口的使用方式,发现并没有发现变化。为了验证功能没有受到影响,我创建了一个测试项目:https://github.com/Alanscut/ele-async-demo
在这个项目里,我将element-ui 依赖的 async-validator 的版本通过package-lock.json文件中锁定版本的方式替换为了4.0.7版本。 运行这个demo工程之后,表格内容检验功能仍然正常工作。并且新的版本中已经规避了ReDoS攻击。
如果您担心 async-validator 从1.8.5 升级到 4.0.7 的跨度太大,可能引发其他问题,我可以提供更多的验证过程,期待您的意见 😄
把 async-validator 版本从 ~1.8.5 改成 ^1.8.5 也好啊。 我查了,async-validator 这个库 从 1.11.4 及其以下版本依赖 babel-runtime 6.x ,而 babel-runtime 6.x 又依赖 core-js ^2.4.0 ,vue-cli 4.x 最新版本已经把 core-js 依赖到了 ^3.6.5。 所以还是建议 element-ui 把 async-validator 版本提升一下。
这个PR什么时候能够Merge啊,不想再在编译过程中看见警告了🤩
迫切需要这个。
好像可以通过package.json的overrides选项覆盖依赖版本,不过我也是希望能升级下async-validator的版本
package.json中覆盖依赖的配置如下
"overrides": {
"element-ui@^2.15.8": {
"async-validator": "~4.0.7"
}
}
不过override配置只在用npm install的时候才有用,在pnpm install 或者yarn install的时候,overrides不生效,要在pnpm里面写override,但是pnpm的override不支持嵌套。
"pnpm": {
"overrides": {
"async-validator": "~4.0.7"
}
}
好像可以通过package.json的overrides选项覆盖依赖版本,不过我也是希望能升级下async-validator的版本
yarn 有 solutions,pnpm没用过不知道
please upgrade async-validator for i18n message!!!
waiting for this🥺
npm overrides 或者 yarn solutions 锁死吧
npm overrides 或者 yarn solutions 锁死吧
这是一个应该更新的依赖,而不是让开发人员依赖非标准方式更新
npm overrides 或者 yarn solutions 锁死吧
这是一个应该更新的依赖,而不是让开发人员依赖非标准方式更新
道理都懂, 维护人员这边这边有你这个想法, issue 还置于挂这么久吗? 要么缺人要么没缺时间, 要么觉得不必要.