我对Auto-Coder说:Kotti这个项目使用的依赖库比较老,有些有安全隐患,请帮我根据下面的安全检测信息,升级相关依赖库,并更新Kotti项目里面的相关代码。

Auto-Coder 是一个基于终端(terminal)的、利用大语言模型(LLM,比如 GPT 或类似模型)为开发者进行代码补全、解释和重构的 AI 辅助编程工具。它的理念很像“ChatGPT for terminal”,但专为程序员场景优化,可以无缝和本地代码、终端流程结合。初学使用参见这篇文档:把AI装进你的terminal终端:Auto-Coder终极编程助手体验-CSDN博客

Kotti是一个非常好的基于pyramid框架的web搭建项目,官方已停止更新,不支持pyramid2.x库。使用Auto-Coder将Kotti 的pyramid依赖库从1.x升级到2.x,参见:使用auto-coder将kotti项目的pyramid依赖从1.x升级到2.x,将SQLALchemy从1.x升级到2.x-CSDN博客

Kotti的其它库也大多老旧,有安全隐患,因此对它们进行安全检验,方法见:https://blog.csdn.net/skywalk8163/article/details/148102970 ,并使用Auto-Coder 来解决因版本升级带来的问题。

开始行动

在auto-coder里面使用的提示词为组合形式,由两部分组成,第一部分说明当前项目情况,第二部分布置当前的调试任务,一般一个任务只负责更新一个库。

第一部分能提示词:

Kotti这个项目使用的依赖库比较老,有些有安全隐患,请帮
我根据下面的安全检测信息,升级相关依赖库,并更新Kotti项目里面的相关代码。

第二部分提示词

将Kotti项目的requirements.txt文件发给大模型,比如gpt-4o,它会总结出当前有哪些库存在安全隐患。安全隐患最高的部分如下,将它们以单个依赖库拆分,不用修改,或者适当增加补充设定,如:建议升到4.3.0版本 等语句。

然后将每个部分跟第一部分组合,发送给Autocoder即可。

AI指出的安全隐患:

(0.6版本等字样,是在autocoder处理完毕后,手工保存项目设定的版本号)

bleach==4.1.0

这个版本存在多处 XSS 绕过漏洞(比如 CVE-2021-23980:标签过滤器逃逸,可以插入恶意脚本)。
建议强烈升级到 bleach>=6.0.0(前后API有变,需适配)。

0.6版本

  1. bcrypt==3.2.2

    • 有一些边界溢出修复(虽然不是直接可远程利用,但建议关注,见 bcrypt releases)。不是最紧急,但能升到3.2.7或更高更好。建议升到4.3.0版本

0.7版本

  1. waitress==2.1.1

  2. html2text==2020.1.16

    • 旧版存在XSS和标签解析逃逸,详见 html2text CVEs
    • 建议升级至 >=2023.9.1。
  3. bleach-allowlist==1.0.3

    • 这个包本就是 bleach 的扩展,“allowlist”名为该系列已弃用命名,内容很久没更新。建议只在必要时用,并确认和 bleach 版本兼容,否则考虑替换掉

在处理bleach-allowlist==1.0.3的时候,把系统给搞崩了,具体来说就是把bleach又退回到4.1.0版本了。

想找方法退回,但是没找到。(后来问作者,得知web版本可退回)也许终端版本无法任务回退吧。

于是只好让auto-coder再来一次:

Kotti这个项目使用的依赖库比较老,有些有安全隐患,请帮
我根据下面的安全检测信息,升级相关依赖库,并更新Kotti项目里面的相关代码。bleach=
=4.1.0
 
这个版本存在多处 XSS 绕过漏洞(比如 CVE-2021-23980:标签过滤器逃逸,可以插入恶意
脚本)。
建议强烈升级到 bleach>=6.0.0(前后API有变,需适配)。

现在版本是0.8,但是pytest是报错的:

修改

现在版本是0.9

requirements.txt文件已经修正

还需要继续解决pytest报错

明白了,是kotti自己的问题,没有重新安装

FAILED Kotti/kotti/tests/test_app.py::TestGetVersion::test_it - pkg_resources.ContextualVersionConflict: (bleach 6.2.0 (/home/skywalk/ub22p...

先保存个0.10版本。

另,从这个版本开始,kotti开始生成版本

生成

重新编译,ok

pip install -e .

测试test_app.py ok

====================== 16 passed, 5463 warnings in 7.12s =======================

生成了kotti1.0.tar.gz文件

该版本已经支持pyramid ,且SQLACchemy 等也升到较新的版本。bleach等四个库也升级到了新版本。

安装好后kotti显示2.0.10.dev1

总结

使用 Auto-coder完成Kotti项目的依赖库版本升级问题非常简单方便,只要把问题描述清楚,让它把指定的库升上去,后面它会自动更新代码,解决版本升级可能带来的各种代码问题。

当然过程是曲折的,毕竟依赖库牵一发而动全身,Auto-coder跟其它AI助手比起来又聪明又能干,不用询问就会自己修改代码,但是有时候也挺担心它太智能把项目搞崩,索性最终也没出现无法收拾情况。另外刚刚使用Auto-coder,不太熟悉操作,也走了一些弯路。

总之这次使用Auto-coder来自动更新项目的依赖库非常成功,是一次非常棒的体验,大家也都来试试吧!

用同样的办法,后续又升级了几个库 beaker==1.13.0 mako==1.3.10 waitress==3.0.2 webob==1.8.9 ,Kotti项目迎来了打包1.2 ,项目2.0.10dev2 版本,参见:https://skywalk.blog.csdn.net/article/details/148102970

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值