jQuery 3.5.0 发布总结
主要更新内容
jQuery 3.5.0 由 Timmy Willison 发布,主要修复了 jQuery HTML 解析器中的一个跨站脚本(XSS)漏洞,并添加了部分缺失的方法以准备 jQuery 4 的发布。
跨站脚本(XSS)漏洞修复
- 漏洞发现者:Masato Kinugawa 在 jQuery 的
htmlPrefilter方法中发现了一个 XSS 漏洞,并通过一个挑战示例展示了该漏洞的影响。 - 漏洞原因:
htmlPrefilter方法使用正则表达式将 XHTML 风格的自闭合标签转换为 HTML 风格的标签,这可能导致意外的 HTML 上下文暴露,从而引发 XSS 攻击。 - 修复措施:jQuery 3.5.0 将
jQuery.htmlPrefilter改为恒等函数,修复了该漏洞。依赖旧行为的代码可能会受到影响,建议使用 jQuery Migrate 插件恢复旧行为。
影响范围
- Snyk 平台估计:84% 的网站可能受到 jQuery XSS 漏洞的影响,jQuery 在 Alexa 排名前 5000 的网站中占 79%。
位置选择器(Positional Selectors)更新
- 移除计划:jQuery 4 将移除所有位置选择器(如
:first、:last),出于维护和优化的考虑。 - 新增方法:jQuery 3.5.0 为
:even和:odd添加了替代方法,例如$("div:even");可以写成$("div").even();。
其他更新
jQuery.trim弃用:推荐使用 JavaScript 原生的String.prototype.trim()方法。- 其他修复和变更:jQuery 3.5.0 包含其他 bug 修复、弃用和变更,详细内容可参考发布说明和升级指南。
升级建议
获取方式
- CDN:jQuery 3.5.0 CDN 链接
- npm:通过
npm install jquery@3.5.0安装。
总结
jQuery 3.5.0 是一个重要的安全更新版本,修复了 XSS 漏洞并为 jQuery 4 的发布做准备。开发者应尽快升级,并根据需要使用 jQuery Migrate 插件确保代码兼容性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。