利用Dependabot漏洞绕过GitHub代码合并保护
研究人员发现了一种新型攻击方式,利用GitHub的Dependabot机器人(以及其他类似的GitHub机器人)的“Confused Deputy”漏洞,攻击者可以诱骗Dependabot合并恶意代码。攻击者可以通过巧妙地构造分支名称,甚至绕过分支保护规则,最终实现代码注入。研究人员还披露了两种此前未知的攻击技术,进一步提升了攻击效率。这提醒开发者需谨慎对待自动化工具,并加强代码安全审计。
研究人员发现了一种新型攻击方式,利用GitHub的Dependabot机器人(以及其他类似的GitHub机器人)的“Confused Deputy”漏洞,攻击者可以诱骗Dependabot合并恶意代码。攻击者可以通过巧妙地构造分支名称,甚至绕过分支保护规则,最终实现代码注入。研究人员还披露了两种此前未知的攻击技术,进一步提升了攻击效率。这提醒开发者需谨慎对待自动化工具,并加强代码安全审计。
TigerBeetle是一个为双重记账设计的OLTP数据库,它注重安全性和速度,采用Viewstamped Replication共识协议提供强串行化一致性。不同于通用数据库,TigerBeetle只存储账户和账户间的转账信息,适合金融交易、库存管理等场景。为提升高并发吞吐量,它将所有写入操作集中到主节点的一个核心上,并通过批量处理、I/O并行化等优化策略提升单节点性能。TigerBeetle还具有强大的容错能力,能够在单节点故障时保持运行,且不会丢失数据。其升级机制也十分独特,新版本二进制文件包含多个旧版本代码,可实现平滑升级。
TigerBeetle数据库团队使用Jepsen测试发现了其查询引擎中的一个bug,令人惊讶的是,这个组件之前已经过四个fuzzer的广泛测试。调查发现,fuzzer的测试用例生成策略中存在盲点,导致某些类型的查询组合无法被覆盖。这个问题源于fuzzer在初始化时预先注册查询,这种方式虽然简化了工作负载,但却意外地限制了输入空间的多样性。最终,通过改进fuzzer,使其生成更随机的输入并进行更精确的验证,成功复现并修复了该bug。这个案例提醒我们,即使是精心设计的fuzzing策略也可能存在盲点,需要结合其他测试方法,才能更全面地保障软件质量。
厌倦了WordPress的臃肿?Aether CMS是一个极简、快速的静态网站生成器,它基于文件存储,而非数据库,使用Markdown和YAML,并拥有直观的管理界面。开发者可以快速创建自定义页面和主题,而用户则可以轻松创建和发布内容。Aether的核心在于其轻量级的架构和极高的速度,它只依赖四个核心模块,生成纯静态HTML,加载速度极快。它适合个人博客、公司文档、营销网站等多种场景,是追求速度和简洁的理想选择。
TiddlyWiki是一款强大的交互式工具,用于处理复杂数据,这些数据难以用电子表格或文字处理器等传统工具轻松管理。它将信息分解成最小的语义单元——Tiddler,并用标题、链接、标签、列表和宏进行组织,方便用户掌控信息。无需服务器基础设施,开源且易于使用,TiddlyWiki赋予用户前所未有的信息掌控自由。
一位YouTuber 因其关于在树莓派 5 上使用 LibreELEC 进行 4K 视频播放的视频而两次收到社区规范违规通知。视频中并未包含任何破解版权保护或非法获取媒体内容的工具,仅展示了如何自建媒体库。然而,YouTube 却以“推广危险或有害内容”为由将其移除。作者已将视频上传至互联网档案馆和 Floatplane。作者反思了 YouTube 的盈利模式和 AI 内容抓取问题,表达了对未来内容创作模式的担忧。
本项目旨在打造全球首个开源家用蒸馏软件。作者结合自身15年酿造和5年蒸馏经验,计划利用Raspberry Pi、Python等技术,实现蒸馏过程的自动化控制,例如温度监控、报警提醒等。目前已完成部分硬件和软件开发,并计划持续更新,欢迎大家参与贡献。
本文作者反驳了写作中常见的“避免副词”的建议。作者认为,副词是语言的一部分,盲目摒弃会限制写作表达。文章分析了“避免副词”的误区,指出许多情况下,副词的使用是精准且有效的,关键在于是否刻意运用,而非简单地重复信息。作者以Denis Johnson的作品为例,说明了副词在创造独特风格和人物刻画中的作用,最终强调了写作中“实用原则”的重要性,而非僵化的规则。
作者将自己的Pandas全文搜索库SearchArray与Elasticsearch在BEIR基准测试集上进行了比较,结果令人沮丧:SearchArray在各个方面都落后于Elasticsearch。文章深入探讨了原因,揭示了成熟搜索引擎(如Elasticsearch)在速度上的优势,例如使用WAND算法优化查询和高效的倒排索引结构。SearchArray由于缺乏这些优化,导致性能低下。作者最后总结道,SearchArray适合小型数据集的原型设计,而非大型检索系统。
py-pglite 是一个 Python 测试库,它在 PGlite 和 Python 测试套件之间实现了无缝集成。它允许你在测试中充分利用 PostgreSQL 的强大功能,而无需安装完整的 PostgreSQL。py-pglite 使用内存中的 PostgreSQL,测试运行速度极快;无需安装 PostgreSQL,只需 Node.js;原生支持 SQLAlchemy 和 SQLModel;每个测试模块拥有独立的数据库,确保测试隔离;完全兼容 PostgreSQL 功能;提供 pytest 插件,方便使用;支持自定义配置,例如超时时间、日志级别等;提供数据库清理工具,方便测试数据管理。
Lambduck 是一种极简的函数式编程语言,其语法仅包含几个特殊符号:`` 用于 lambda 抽象,`` 用于函数应用,数字 0, 1 等作为德布鲁因索引。内置函数 `,` 从 stdin 读取字符并转换为 Church 数,` .` 将 Church 数转换为字符并输出到 stdout。示例包括对 true、false 和 Z 组合子的定义,以及一个简单的 "hello world" 程序。其简洁性使其成为研究函数式编程概念的理想工具。
大型企业面临着管理众多SaaS应用和员工访问权限的挑战。SCIM协议应运而生,它通过标准化的JSON数据格式,在身份提供商(如Okta、Entra)和各个软件应用之间同步用户信息(新增、修改、删除)。这简化了集成过程,避免了复杂的定制化开发。然而,SCIM也并非完美无缺,PATCH操作复杂,一些身份提供商(例如微软)的实现与规范存在偏差,需要额外处理。因此,除非必要,不建议从零开始构建SCIM支持,而应选择现成的解决方案。
StringFlux 是一款功能强大的在线字符串转换工具,它允许用户将字符串转换为各种格式,例如 JSON、YAML 和 Base64。其独特的链式操作功能,类似于 Unix/Linux 命令行的管道,使复杂的字符串转换变得高效便捷,例如清晰地查看 JSON 格式的日志消息中的堆栈跟踪。即使对于复杂的转换,StringFlux 也保持了简洁直观的界面,并提供智能操作推荐、搜索和分类操作等功能,帮助开发者节省时间并专注于开发。
Claude Composer是一个命令行工具,旨在增强Claude Code的用户体验和自动化能力。它可以自动处理权限对话框,提供系统通知,并允许自定义规则集和工具集来微调Claude Code的行为。通过灵活的配置,用户可以根据自己的需求精确控制Claude Code的自动化程度,从最大限度地安全到最大限度地自动化,并支持项目特定配置和全局配置。
Container-use是一个开源的命令行工具,它为每个编码代理提供独立的容器化环境。告别一次只能管理一个代理的窘境,多个代理可以安全独立地工作,并支持Claude Code、Cursor等多种兼容MCP的代理。每个代理拥有独立的git分支和容器,实时可见命令历史和日志,方便直接介入和控制。支持标准git工作流,兼容任何代理、模型或基础设施,避免厂商锁定。目前项目处于早期开发阶段,可能存在一些不足,但迭代速度很快,并积极响应反馈。
作者使用 Haskell 编写了一个 APL 解释器。APL 是一种基于数组的编程语言,其简洁的语法极具挑战性。作者在项目中经历了从最初的语法解析器到最终完善的解释器的迭代过程,其中涉及到对 Haskell 的深入学习,以及对解析器设计模式的不断改进,例如从上下文无关文法到使用 Monad 和 Applicative 的优化。最终的解释器虽然与 Dyalog APL 存在一些细微的差异,但已经能够很好地运行。这个项目展现了 Haskell 在处理复杂语法和高阶函数方面的强大能力,同时也揭示了 Haskell 的学习曲线陡峭以及调试的复杂性。
HyperDX 是 ClickStack 的核心组件,它能够帮助工程师快速诊断生产环境问题。通过在任何 ClickHouse 集群之上轻松搜索和可视化日志和追踪信息(类似于 ClickHouse 版本的 Kibana),HyperDX 提供了闪电般的搜索速度和直观的界面,支持全文本搜索和属性搜索,并能分析异常趋势、设置警报以及监控从 HTTP 请求到数据库查询的性能。HyperDX 可与 OpenTelemetry 集成,支持多种编程语言和平台,并提供多种部署方式,包括 Docker 和 ClickHouse Cloud。其目标是让工程师能够轻松利用生产遥测数据来快速解决棘手的生产问题,并克服现有工具价格昂贵、难以使用以及需要在多个工具之间切换的缺点。
Dino 是一款高性能的编程语言,结合了脚本语言、函数式编程和面向对象编程的特性。其发展历程可追溯至1993年,最初应用于俄罗斯游戏公司 ANIMATEK。本文详细介绍了 Dino 0.98 开发版本的实现细节,包括字节码编译器、解释器、JIT 编译器以及类型推断等方面。此外,还对 Dino 与 Python、PyPy、Ruby 等其他语言的性能进行了比较,并展示了其在 x86-64、AARCH64 等多种架构上的表现。Dino 拥有强大的特性,例如多精度整数、异构可扩展数组、关联表、一等函数、协程、异常处理、模式匹配等,并通过创新的类组合机制实现了安全且强大的面向对象编程。
苹果App Store声称其生态系统为开发者创造了巨额价值,但大部分开发者无需支付佣金。然而,一小部分开发者,特别是独立开发者,却要承担高额的应用内购买(IAP)佣金,这引发了争议。文章指出,苹果利用IAP强制某些开发者为整个生态系统买单,包括那些通过广告或其他方式获利的“免费”应用,这是一种不公平的“免费午餐”现象。作者质疑苹果这种做法的合理性,认为苹果可以通过硬件销售而非开发者佣金来盈利,并指出苹果这种做法实际上是对小部分开发者的剥削。
PURL(Package URL)是一种开放标准,用于唯一标识不同软件生态系统中的软件包。它由Philippe Ombredanne于2017年创建,旨在解决软件包引用标准化的问题。PURL是一个特殊格式的URL,包含了软件包类型、名称、版本等信息,方便追踪和共享软件组件。PURL在软件物料清单(SBOM)中扮演着关键角色,因为它能够唯一标识每个组件,并支持SBOM的丰富化和漏洞管理。与CPE相比,PURL更侧重于开源软件包,使用更简单,但缺乏对商业产品的支持。
arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和共享新的arXiv功能。参与arXivLabs的个人和组织都认同并接受了arXiv关于开放性、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法可以为arXiv社区增值,请了解更多关于arXivLabs的信息。
FastHTML是一种与FastAPI/React等框架不同的Web开发框架,其最佳实践也与众不同。它强调简洁、高效,并利用智能默认值来简化代码。文章总结了FastHTML的几项最佳实践,例如:使用`db.create()`简化数据库表创建;利用函数名作为路由名称;使用查询参数代替路径参数;利用返回值进行函数链式调用;使用`to()`方法生成URL;充分利用PicoCSS的默认样式;以及采用函数式编程模式等。通过这些方法,可以编写出更简洁、易读、易维护的FastHTML应用。
作者重写了他的电子书生成器Little Webby Press,从繁琐的构建流程中解放出来。新版本抛弃了Svelte、BrowserFS等构建工具和依赖,转而使用Mithril和Pico CSS,并巧妙地利用importMap从JsDelivr加载依赖。 这使得代码更简洁,运行速度大幅提升,生成《白鲸》的电子书和网站时间从4.7秒缩短到不到0.5秒。作者认为这种“无构建”方式更令人愉悦,并计划未来只专注于此类Web应用开发。
本文作者认为,在构建可观测性系统时,应优先关注错误追踪。传统的可观测性“三支柱模型”(日志、指标和追踪)忽略了错误这一最重要的信号。异常事件直接表明代码的假设失败,提供比日志、指标和追踪更直接、更有价值的信息。作者建议深度追踪错误,收集完整的堆栈跟踪、局部变量、请求数据和用户上下文等信息,而不仅仅是计数错误。他批判了将错误视为普通事件的抽象方法,以及一些全栈APM工具将错误追踪边缘化的趋势,强调应将错误追踪置于首位,而非附属品。
据9to5Mac报道,苹果即将在Apple Notes中加入Markdown导出功能。Markdown的创造者John Gruber对此表达了复杂的心情。他认为,Markdown适合网页写作和纯文本保存,而非笔记应用的核心功能。Apple Notes优秀的所见即所得编辑器和简洁的格式化选项更符合Macintosh的理念。虽然Markdown导出是进步,但Gruber担忧将Notes转变为Markdown编辑器会适得其反,破坏其易用性和简洁性。他更希望Apple Notes专注于提升其核心功能,而非追逐所谓的“Markdown潮流”。
一位Rust语言的早期使用者,在Rust 1.0发布一个月后便开始使用它,并以此创建了两家初创公司,积累了50万行代码。文中回顾了早期Rust版本兼容性差、编译时间长、学习曲线陡峭等挑战,也赞扬了Rust社区的优秀贡献,以及Rust语言在可靠性和性能方面的显著进步。作者展望未来十年,期待Rust在编译速度、可移植性、常量计算以及并发编程等方面取得更大突破,并进一步拓展在浏览器、游戏开发等领域的应用。
arXivLabs是一个框架,允许合作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法可以为arXiv社区增值,请了解更多关于arXivLabs的信息。
phptop 是一款轻量级的 PHP 性能监控工具,它可以追踪每个查询的执行时间(包括墙上时间、用户CPU时间和系统CPU时间)以及内存和其它资源的使用情况。只需在 php.ini 文件中添加一行配置,即可轻松地在 LAMP 服务器上全局启用 phptop。它资源占用极低,Bearstech 已在多个生产服务器上稳定运行多年。phptop 支持 PHP 5.2.0 以上版本,并经过 PHP 8.2 版本测试。
一篇关于使用开源工具LVTShift模拟地价税(LVT)影响的博文。作者通过对南本德和锡拉丘兹两个城市的案例分析,展示了如何利用LVTShift模拟不同LVT政策(例如,收入中性政策、不同税收负担转移比例等)对城市居民和经济的影响。文章详细介绍了数据获取、数据处理、模型构建以及结果分析等步骤,并提供了代码示例和数据资源。最终,作者鼓励读者使用LVTShift来模拟他们所在城市的LVT,并分享结果。
NoteGen是一款跨平台Markdown笔记应用,它巧妙地结合了AI和笔记记录功能,将零散的知识碎片整理成可读性强的笔记。它支持多种记录方式(截图、文本、插图等),采用原生Markdown存储,方便迁移。离线可用,并支持与GitHub、Gitee私有仓库同步。AI增强功能允许用户配置ChatGPT、Gemini等多种模型,实现笔记内容的AI辅助创作、润色和翻译等。其核心在于“从记录到写作”的流程,将记录与写作无缝衔接,提高效率。