jQuery软件系统定制开发版本低引起的漏洞——-2020-11022/CVE-2020-11023
漏洞号:CVE-2020-11022/CVE-2020-11023
影响范围:jQuery >= 1.0.3 < 3.5.0
漏洞原理
见:
漏洞复现
软件系统定制开发要想在项目本地实现,可把该html保存下来,修改script的src属性为项目引用js的地址,再打开即可操作实现。
修复方案
1)更新jQuery到3.5.0或更高版本
https://code.jquery.com/jquery-3.5.0.js
2)使用XSS清理工具清理用户输入的HTML,官方推荐:
https://github.com/cure53/DOMPurify
这里使用方案一,升级jQuery版本。
升级jQuery
jQuery官网:
项目使用的jQuery是1.x。升级版本根据官方指引使用migrate插件。
搜索migrate,得到最新的Migrate插件是2016年的,但是给出了升级到jQuery3.0的途径。
按照指引,先将1.x升级至1.x版本最新的1.12.3,并同时使用migrate 1.4.1插件,对警示信息指出的问题进行修改。然后再升级至当前最新的3.x版本,同时使用migrate 3.x插件。
现在(22年3月)jQuery最新的版本是3.6.0。上面指引并未给出migrate 3.x的链接。不过在jQuery 3.6.0的发布博客中可以找到。
同时也给出了3.5的升级指引和不能升级到3.5时可用的补丁等。
Migrate 3.x插件下载地址:
遇到的警示信息
参考官方指引:
-
JQMIGRATE: jQuery.fn.focus() event shorthand is deprecated
参考jQuery.fn.click()的替换方法:.focus()换成.trigger(“focus”) -
JQMIGRATE: jQuery.isFunction() is deprecated
参考jQuery.type()的替换方法,将原来的$.isFuntion(arg)换成typeof arg === “function”