GitHub Actions 的 YAML 锚点:一个倒退?

2025-09-22

GitHub Actions 近期增加了对 YAML 锚点的支持,但这被作者认为是一个倒退。文章指出,YAML 锚点与现有功能冗余,增加了数据模型的复杂性,使得 CI/CD 的人和机器理解都更加困难。此外,GitHub 没有支持 merge keys 功能,使得 YAML 锚点的独特用途也无法发挥。作者认为,这使得 GitHub Actions 更难进行安全分析,建议 GitHub 立即移除对 YAML 锚点的支持。

阅读更多
开发

用有限状态转换器优化GitHub Actions静态分析

2025-08-18

静态分析工具zizmor的开发者使用有限状态转换器(FST)优化了其GitHub Actions模板注入漏洞检测功能。通过将GitHub Actions上下文模式映射到其逻辑“能力”,FST将表示大小减少了一个数量级(从约240KB到约14.5KB),并且比之前的基于表和前缀树的方法更快、更节省内存。此外,FST还在编译时预计算,消除了启动成本。该改进显著降低了误报率,提高了检测效率。

阅读更多

GitHub Actions策略绕过漏洞:看似安全的策略,实则不堪一击

2025-06-11

GitHub Actions的策略机制旨在限制可用于仓库、组织或整个企业的Actions和可重用工作流的类型,但该机制很容易被绕过。作者发现,通过在运行器文件系统中克隆Actions仓库,然后使用本地路径引用来运行相同的Action,可以轻松绕过策略限制。这使得看似安全的策略形同虚设,作者呼吁GitHub修复此漏洞,以避免开发者误以为策略提供了实际不存在的安全边界。

阅读更多
开发 策略绕过

Makefile效应:为何我们总是复制粘贴配置文件?

2025-01-11

本文探讨了软件工程中普遍存在的“Makefile效应”:工程师们倾向于复制粘贴并修改已有的配置文件(例如Makefile、CI/CD配置等),而非从零开始编写。作者认为,这并非完全是坏事,但在工具设计层面,这暗示着工具可能过于复杂,缺乏良好的诊断和调试支持,导致用户难以高效学习和安全地使用。文章最后提出了一些工具设计的建议,旨在减少这种效应的发生,从而提升开发效率和安全性。

阅读更多
开发 工具设计

Zizmor本可以捕捉到Ultralytics工作流漏洞

2024-12-08

Ultralytics,一个流行的机器学习视觉包,遭到攻击,攻击者入侵了其CI,并在PyPI上发布了包含加密矿工的恶意版本(v8.3.41和v8.3.42,现已删除)。攻击者利用了pull_request_target触发器和自定义GitHub Action中的模板注入漏洞,通过植入恶意分支名称执行代码,并可能通过投毒缓存污染构建流程。Zizmor安全工具可以检测到关键漏洞,但未能识别自定义操作中的模板注入。攻击者还使用了被盗的token进行后续攻击,并直接发布了v8.3.45和v8.3.46恶意版本到PyPI。

阅读更多
未分类

Liquidsoap实现软件定义网络电台

2024-11-22

本文介绍了如何使用Liquidsoap构建一个灵活的网络电台。作者对比了传统网络电台工具的局限性,例如固定播放列表和脆弱的本地回环,并提出了Liquidsoap的优势:无缝处理主要播放列表和实时麦克风插入、与更大的电台管理工作流程集成(自动获取和播放Navidrome实例中的播放列表)、以程序方式维护。文章给出了Liquidsoap脚本示例,演示了如何创建流生成器、处理输入输出、实现交叉渐变、添加麦克风输入以及设置回调函数等功能。作者还分享了个人电台的设置,并总结了Liquidsoap带来的好处:降低了直播中断的风险,让电台管理更轻松有趣。

阅读更多

用 Pydantic 在 Python 中逼近和类型

2024-08-14

文章介绍了如何在 Python 中使用 Pydantic 库来实现和类型。文章首先指出了 Pydantic 在数据验证方面的优势,然后通过一个示例说明了 Pydantic 的局限性,即无法直接表达类似“异或”这样的逻辑关系。为了解决这个问题,文章引入了和类型的概念,并详细讲解了如何使用 Pydantic 的标签联合(tagged union)特性来逼近和类型。文章还讨论了如何使用枚举类型作为标签值、如何设置默认标签值以及如何复用代码等问题。

阅读更多
未分类 Pydantic 和类型

Python wheel 文件名缺乏规范形式

2024-06-12

这篇文章探讨了Python wheel文件名缺乏规范形式的问题。文章指出,尽管Python包名和版本号都有规范化规则,但wheel文件名却没有,导致无法直接通过字符串比较判断两个文件名是否等效。文章分析了压缩标签集的顺序和重复性问题,这些问题加剧了文件名不规范的程度。作者认为,尽管这个问题在实际应用中 rarely 造成影响,但它表明wheel文件名不适合作为领域密钥使用。最后,文章提出了两种解决方案,建议规范压缩标签集的表达和引入规范化方法。

阅读更多