如何修复Flask-Bootstrap中Bootstrap与jQuery的JavaScript漏洞?
修复Flask-Bootstrap内置依赖漏洞的方法
由于Flask-Bootstrap 3.3.7.1是针对Bootstrap 3的最终维护版本,官方已停止更新,内置的Bootstrap 3.3.7和jQuery 1.12.4存在安全漏洞且无法通过升级Flask-Bootstrap解决,你可以通过以下两种方式修复:
方法一:手动替换安全版本的静态资源
直接修改base.html,覆盖Flask-Bootstrap默认引入的旧版本资源,不再依赖super()加载内置组件:
修改base.html的head块
替换原有的{{ super() }},手动引入Bootstrap 3的最新安全版本(3.4.1)的CSS:
{% block head %} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css"> <!-- 保留你自己的其他头部资源 --> {% endblock %}
修改base.html的scripts块
替换原有的{{ super() }},手动引入安全版本的jQuery和Bootstrap JS:
- jQuery可选1.12.x分支的最终安全补丁版
1.12.4,更推荐用兼容Bootstrap 3的jQuery 3.x系列(如3.6.4,安全性更高) - Bootstrap JS对应使用3.4.1版本
示例代码:
{% block scripts %} <!-- 优先选择jQuery 3.x提升安全性 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script> <!-- 保留你自己的其他脚本 --> {% endblock %}
方法二:升级到Bootstrap 4/5版本(需适配模板)
如果项目可以接受模板调整,建议改用支持Bootstrap 4或5的Flask扩展,这类扩展内置了安全的依赖版本:
- 卸载旧版Flask-Bootstrap:
pip uninstall flask-bootstrap - 安装新版扩展:
# 安装适配Bootstrap4的版本 pip install flask-bootstrap4 # 或安装适配Bootstrap5的版本 pip install flask-bootstrap5 - 修改项目初始化代码和模板语法(如
base.html的继承规则、组件类名等,需适配Bootstrap4/5的结构)
验证修复
修改完成后重启项目,查看页面源码确认加载的是指定的安全版本,再用Lighthouse重新检测即可验证漏洞是否修复。
内容的提问来源于stack exchange,提问作者tommy
相关产品推荐
相关产品推荐

