Python 潮流周刊#61:PyPI 管理员密钥泄露事件
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道[1]作为副刊,补充发布更加丰富的资讯,欢迎关注。
本期分享了 12 篇文章,12 个开源项目,2 则音视频,2 则热门话题,全文 2400 字。
🦄文章&教程[2]
1、二进制密钥扫描帮我们防止了(可能是)你能想象到的最严重的供应链攻击[3]
JFrog 安全团队发现了一起 PyPI 管理员密钥泄漏事件,它有极高的危害性,因为可访问 python、pypa、psf 和 pypi 组织下的 200 多个代码仓!管理员在源码中写了密钥,虽然最终删除了,但是缓存的 pyc 文件里却留下了密钥!只关心源码的安全扫描还不够,二进制安全扫描同样重要啊!
2、事件报告:泄露的 GitHub 个人访问密钥[4]
上一则事件的当事人(PSF 的基础设施总监)发布了事件报告,原来泄露的密钥大概在一年前就已提交了,所幸没有被人恶意利用!重要的经验教训是:密钥要设置合适的到期时间,构建 docker 镜像时记得排除 __pycache__ 和 *.pyc 文件,保证源码是干净的。
3、【网络安全】「漏洞复现」(六)探索 Python 中原型链的利用与污染[5]
文章出自《从0到1学习安全测试》系列,通过对一个 Flask 网页的服务器端模板注入攻击,介绍 Python 的原型链利用和污染问题,希望读者了解 Python 中原型链的概念、机制和潜在的安全风险。
4、自由线程 CPython 已准备好用作实验![6]
Python 3.13 版本还有 2 个多月就要发布了,实验性的无 GIL 特性想不想体验一下?文章介绍了 free-threaded-compatibility[7] 仓库,提供了一些资源,也跟踪开源项目对 no-gil 的支持情况。还介绍了 numpy 和 pywavelets 发现的两个线程安全问题。
5、Python 性能分析的几个方法,找到你代码中的那个她[8]
介绍了用profilehooks 库来检测 Python 代码性能,并用Snakeviz 和 gprof2dot 这两个可视化工具来分析数据,找到主要的性能瓶颈,最终实现有效的优化。
6、用 Python 和 Flask 中开发简单的 Pastebin 服务[9]
Pastebin 是一种在线共享代码和文本的服务,文章介绍如何用 Flask 开发一个,支持粘贴文本、选择编程语言并生成共享 URL,详细解释了每部分代码的作用。(附:巧合的是,本周收到一则久违的开源项目投稿,使用异步 Flask 开发简单的 pastebin[10] ,分享自@yuxiaoy1)
7、Debug 日志:CPython GH-121528[11]
@Manjusaka 又给 CPython 修了一个 bug。Python 3.13 Beta 版本中,因为 PEP-683 的实现 + 周边的改动,导致低版本下编译的一些扩展无法在 Python 3.13 中运行。
8、分享一件有趣的事情,我帮 CPython 修复了一个 bug
@古明地觉 也给 CPython 修了一个 bug!是关于 Python 元组缓存池的问题,最终修改代码只是加了一个“=”号,但是从源码中发现问题和复现的过程,能加深你对 Python 解释器的理解。
9、装饰器如何使我的 Flask 代码崩溃:经验教训[12]
写 Python 装饰器的时候,应该注意什么问题?文章告诉我们的答案是,一定要加上 functools.wraps ,不加的话,多次使用装饰器会出现重名问题。
10、2024 年,良好的 Python 项目结构是怎样的?[13]
文章认为使用requirements.txt 、手动创建和进入 venv 虚拟环境、手动设置PYTHONPATH 、用 setup.py 构建扩展都是不好的做法,作者给出的是基于 poetry 库的一套项目管理方案。
11、如何用 PyTorch 从零开发和训练自己的 GPT-2?[14]
想不想拥有一个自己开发出来的 GPT?是否好奇一个大模型是如何训练出来的?文章介绍并实现了大模型的基本组件,如分词器、数据加载器。(附:该系列的第二篇是 构建和训练 GPT-2[15])
12、万字浓缩版,Python 潮流周刊第 1 季的 800 个链接![16]
我们周刊第 1 季和第 2 季都分享了约 800 个链接,且每季都超过 6 万字,这个数据量足够惊人的!不知道有多少人是全都看过的呢?这篇文章将第 1 季的所有链接提取了出来,按照类型分类,可以方便没看过的读者快速浏览寻宝~
🐿️项目&资源[17]
1、exo:在家庭日常设备中运行自建的 AI 集群[18]
在你的 iPhone、iPad、Android、Mac 和 Linux 设备上搭建 AI 集群,支持 LLaMA 和其它流行的大模型,自动发现集群设备。(star 2K)
2、kaskade:Kafka 的 TUI 应用,在终端中管理和消费 topic[19]
使用 Textualize 开发的文本用户界面,对 topic 进行管理和消费,支持 Protobuf 反序列化。
3、G-Scraper:完全用 Python 开发的 GUI 网络爬虫[20]
利用 Requests + Beautifulsoup4 + PyQt5 开发的简单爬虫可视化项目,支持从多个 URL 中抓取多个元素,可处理登录/注册,具有完整的日志功能。
4、source2RSS:将信息源转 RSS 的 Python 框架[21]
定期运行抓取器获得信息流,并更新对应的 RSS 源;或在 API 收到数据后,保存其数据,并生成 RSS 源。(分享自@AlterNao1)
5、mandala:简单而优雅的代码追踪框架[22]
支持对 Python 函数级运算过程自动保存、查询以及版本控制,可以单独存储和跟踪集合里的元素。
6、jurigged:Python 的热重载[23]
让你在代码运行时也可以更新代码,修改函数时,可同时影响所有调用的位置;修改模块时,只会重新运行被修改的代码行,不会加载整个模块。(star 1.1K)
7、wenet:端到端语音识别工具包[24]
面向生产的全栈解决方案,在许多公共语音数据集上取得了 SOTA 结果。(star 3.9K)
8、mem0:人性化 AI 的内存层[25]
为大模型提供一个智能的、自我改进的内存层,从而实现跨平台、跨应用的人性化 AI 体验。(star 10.8K)
9、MinerU:一站式数据提取工具,支持 PDF/网页/多格式电子书[26]
包含 Magic-PDF 和 Magic-Doc 两大功能,可将 PDF/网页或多格式电子书转换为 Markdown 格式。
10、promptdoc:管理多版本、场景和模型的提示词模板[27]
基于 Flask + MongoDB 开发的提示词模板管理项目,支持基本的增删改查功能。
11、disposable-email-domains:一次性的电子邮件域名列表[28]
包含近 4000 个一次性的域名邮箱地址,可用于注册虚拟用户。(star 2.7K)
12、fastembed:轻量级的 Python 库,实现最先进的嵌入[29]
专为生成嵌入而开发的框架,支持流行的文本模型。无需 GPU 和 PyTorch 依赖项,使用 ONNX 运行时,领先于 OpenAI Ada-002。(star 1.2K)
🐢播客&视频[30]
1、SE Radio 624:与 Marcelo Trylesinski 谈 FastAPI[31]
出自 IEEE 计算机学会和 IEEE 软件杂志主办的播客节目,嘉宾是 Pydantic 的高级软件工程师,也是 Starlette 和 Uvicorn 等项目的维护者。话题集中在 FastAPI 的设计、实现和运用上。
2、The Python Show Python 42:Harlequin 终端里的 SQL IDE[32]
Harlequin 支持在命令行终端可视化操作 SQL,这期播客嘉宾是这个库的作者,话题讨论了项目的起源、为什么写 TUI 而不是 GUI、有什么经验教训等。
🥂讨论&问题[33]
1、我是 Python 后端开发,如何创建一个现代且高性能的前端?[34]
来自 Reddit 的帖子,看看前端技术栈有哪些比较好/新的技术选择。HTMX 出现了很高的比例!
2、2024 年 Python 实现定时任务和延时任务,性价比较高的方案是什么?[35]
来自 V2EX 的帖子,Python 任务管理的方案有哪些?
🐧 往年回顾[36]
Python潮流周刊#11:如何使用 Golang 运行 Python 代码?[37](2023.07.15)
🐱欢迎订阅[38]
技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[39],每周将收到一篇文章推送,每周进步一点点。
欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!
欢迎将本专栏[40]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得高额的返利。
电报频道: https://t.me/pythontrendingweekly
[2]🦄文章&教程: https://xiaobot.net/p/python_weekly
[3]二进制密钥扫描帮我们防止了(可能是)你能想象到的最严重的供应链攻击: https://jfrog.com/blog/leaked-pypi-secret-token-revealed-in-binary-preventing-suppy-chain-attack/
[4]事件报告:泄露的 GitHub 个人访问密钥: https://blog.pypi.org/posts/2024-07-08-incident-report-leaked-admin-personal-access-token/
[5]【网络安全】「漏洞复现」(六)探索 Python 中原型链的利用与污染: https://juejin.cn/post/7390956576179585024
[6]自由线程 CPython 已准备好用作实验!: https://labs.quansight.org/blog/free-threaded-python-rollout
[7]free-threaded-compatibility: https://github.com/Quansight-Labs/free-threaded-compatibility
[8]Python 性能分析的几个方法,找到你代码中的那个她: https://juejin.cn/post/7390319395833380901
[9]用 Python 和 Flask 中开发简单的 Pastebin 服务: https://muhammadraza.me/2024/Simple-Pastebin-In-Python/
[10]使用异步 Flask 开发简单的 pastebin: https://github.com/yuxiaoy1/simple-pastebin
[11]Debug 日志:CPython GH-121528: https://www.manjusaka.blog/posts/2024/07/16/a-live-debug-gh121528/
[12]装饰器如何使我的 Flask 代码崩溃:经验教训: https://suyogdahal.com.np/posts/how-decorator-crashed-my-flask-app/
[13]2024 年,良好的 Python 项目结构是怎样的?: https://matt.sh/python-project-structure-2024
[14]如何用 PyTorch 从零开发和训练自己的 GPT-2?: https://differ.blog/p/here-s-how-you-can-build-and-train-gpt-2-from-scratch-using-pytorch-ace4ba
[15]构建和训练 GPT-2: https://pub.towardsai.net/heres-how-you-can-build-and-train-gpt-2-from-scratch-using-pytorch-part-2-9b41d15baf62
[16]万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!: https://pythoncat.top/posts/2024-07-17-iweekly
[17]🐿️项目&资源: https://xiaobot.net/p/python_weekly
[18]exo:在家庭日常设备中运行自建的 AI 集群: https://github.com/exo-explore/exo
[19]kaskade:Kafka 的 TUI 应用,在终端中管理和消费 topic: https://github.com/sauljabin/kaskade
[20]G-Scraper:完全用 Python 开发的 GUI 网络爬虫: https://github.com/muaaz-ur-habibi/G-Scraper
[21]source2RSS:将信息源转 RSS 的 Python 框架: https://github.com/AhFeil/source2RSS
[22]mandala:简单而优雅的代码追踪框架: https://github.com/amakelov/mandala
[23]jurigged:Python 的热重载: https://github.com/breuleux/jurigged
[24]wenet:端到端语音识别工具包: https://github.com/wenet-e2e/wenet
[25]mem0:人性化 AI 的内存层: https://github.com/mem0ai/mem0
[26]MinerU:一站式数据提取工具,支持 PDF/网页/多格式电子书: https://github.com/opendatalab/MinerU
[27]promptdoc:管理多版本、场景和模型的提示词模板: https://github.com/worldwonderer/promptdoc
[28]disposable-email-domains:一次性的电子邮件域名列表: https://github.com/disposable-email-domains/disposable-email-domains
[29]fastembed:轻量级的 Python 库,实现最先进的嵌入: https://github.com/qdrant/fastembed
[30]🐢播客&视频: https://xiaobot.net/p/python_weekly
[31]SE Radio 624:与 Marcelo Trylesinski 谈 FastAPI: https://se-radio.net/2024/07/se-radio-624-marcelo-trylesinski-on-fastapi/
[32]The Python Show Python 42:Harlequin 终端里的 SQL IDE: https://www.pythonshow.com/p/42-harlequin-the-sql-ide-for-your
[33]🥂讨论&问题: https://xiaobot.net/p/python_weekly
[34]我是 Python 后端开发,如何创建一个现代且高性能的前端?: https://www.reddit.com/r/Python/comments/1dwf2sh/im_a_python_backend_developer_how_to_create_a/
[35]2024 年 Python 实现定时任务和延时任务,性价比较高的方案是什么?: https://www.v2ex.com/t/1057323#reply18
[36]🐧 往年回顾: https://xiaobot.net/p/python_weekly
[37]Python潮流周刊#11:如何使用 Golang 运行 Python 代码?: https://pythoncat.top/posts/2023-07-15-weekly
[38]🐱欢迎订阅: https://xiaobot.net/p/python_weekly
[39]立即订阅: https://xiaobot.net/p/python_weekly
[40]本专栏: https://xiaobot.net/p/python_weekly