优化 GitHub 体验的浏览器插件「GitHub 热点速览」

上周,GitHub 有个“安全问题”——CFOR(Cross Fork Object Reference)冲上了热搜,该问题的表现是:
远程仓库的提交内容任何人可以访问,即使已被删除。只需要拿到 commit ID+源/Fork 的项目地址,任何人都能访问之前提交到远程仓库的内容。下面有 3 个演示,可以复现该问题:
演示一:Fork 项目已删除,之前的提交所有人可见,复现步骤如下:
- Fork 任意公开的开源项目(源项目)
 - 在 Fork 项目中提交 commit 并推送到远程仓库(push)
 - 记下 commit ID 后删除 Fork 项目
 - 访问源项目,并在地址栏拼接上 commit ID,即可查看之前的提交内容
 
演示二:源(上游)项目已被删除,但通过 Fork 项目地址和 commit ID,仍可访问源项目的提交内容。
演示三:源项目是私有项目,被 Fork(私有)后,源项目设置为公开,此时 Fork 项目中的私有内容可被任何人访问。
对此,GitHub 官方很早之前就回应过,这些不是 bug,而是故意为之的特性。既然如此,我们应该如何规避这些安全隐患呢?限于篇幅,详细讨论将在正文中展开。

说回本周的开源热搜项目,第一个开源项目是推荐给 GitHub 产品经理的 refined-github,这是一个来自“民间”的优化 GitHub 使用体验的浏览器插件。一体化的令牌管理平台 Infisical,能够有效地防止令牌和密钥信息泄漏。友好的联邦学习框架 Flower,开箱即用对新手友好。
最后,极简的 GPT-4o 客户端和用 AI 智能批量重命名文件的工具 ai-renamer,都是能帮你提升效率的 LLM 应用神器。
- 本文目录
- 1. 开源新闻
- 1.1 防范 CFOR 问题的建议
 
 - 2. 开源热搜项目
- 2.1 优化 GitHub 体验的浏览器插件:refined-github
 - 2.2 一体化的令牌管理平台:Infisical
 - 2.3 Linux 内核模块编程指南:lkmpg
 - 2.4 友好的联邦学习框架:Flower
 - 2.5 用 AI 批量重命名文件:ai-renamer
 
 - 3. HelloGitHub 热评
- 3.1 免费的可视化 Web 页面构建平台:GrapesJS
 - 3.2 极简的 GPT-4o 客户端:gpt-computer-assistant
 
 - 4. 结尾
 
 - 1. 开源新闻
 
1. 开源新闻
1.1 防范 CFOR 问题的建议

爆出这个问题的文章,原标题是《Anyone can Access Deleted and Private Repository Data on GitHub》,我认为有些夸张,因为必须满足以下条件:
- 你需要推送改动到远程仓库
 - 你必须知道特定的 commit ID
 - 机密信息本身就不应该推送到远程仓库
 
但删除/私有内容能在公网访问,这设计确实“反人类”。如果官方不改进,我们只能规范使用 GitHub 的流程来防止机密泄露,下面是我给出的建议:
- 不要在项目中放明文的密钥和令牌等机密信息,应该放在本地的环境变量中。
 - 避免直接在 GitHub 网页上进行敏感操作,因为会自动执行 push 操作。
 - 在本地设置 git hook 自动进行泄密检查,从源头控制泄密风险。
 - 在将私有项目开源之前,必须进行脱敏检查。此外,即使开发私有的 Fork 项目,也应加上防止泄密的检查流程。
 
最后,值得一提的是 git 悬空提交,它通常用于找回被误删和被 force 掉的提交。如果你曾经“有幸”用过:git fsck –lost-found 命令,当时的心情大概是劫后余生,感谢这条神命令又救了你一命!
git push 命令不会推送悬空提交。
2. 开源热搜项目
2.1 优化 GitHub 体验的浏览器插件:refined-github

主语言:TypeScript,Star:23.8k,周增长:200
这是一个简化 GitHub 界面并添加实用功能的开源浏览器插件,它通过移除页面的多余元素让界面和交互更加简洁,新增了空白字符可见、一键合并修复冲突和放弃 PR 中某个文件的所有修改等实用功能,优化了 GitHub 使用体验,支持 Chrome 和 Firefox 浏览器。
GitHub 地址→github.com/refined-github/refined-github
2.2 一体化的令牌管理平台:Infisical

主语言:TypeScript,Star:13.3k,周增长:150
该项目可以帮助团队集中管理应用配置和机密信息,防止 API TOKEN、密码和公钥等信息泄漏。它提供了简单的界面、客户端 SDK、命令行工具和 API 接口,方便集中管理并集成进现有的项目和 CI/CD 流程,同时还支持令牌扫描等功能,防止 git 提交时泄密。
GitHub 地址→github.com/Infisical/infisical
2.3 Linux 内核模块编程指南:lkmpg

主语言:Other,Star:7.3k,周增长:170
这是一本关于如何为 Linux 内核编写模块的指南,包含了针对最新的 5.x 和 6.x 内核版本的示例。Linux 内核模块是为 Linux 内核添加新功能的一种方法,无需修改内核本身和重启系统,编写此类程序需要具有 C 编程语言基础。
GitHub 地址→github.com/sysprog21/lkmpg
2.4 友好的联邦学习框架:Flower

主语言:Python,Star:4.6k,周增长:200
联邦学习是一种分布式的机器学习方法,可以在不共享数据的情况下训练模型。该项目是一个简单易用的联邦学习框架,可与流行的机器学习框架(PyTorch、TensorFlow、JAX 和 scikit-learn 等)结合使用。它支持联邦学习训练、分析和评估,以及模拟客户端运行等功能,包含丰富的示例,适用于需要保护隐私的机器学习模型开发场景,如医疗、政企和金融等。
import flwr as fl
import tensorflow as tf
# Load model and data (MobileNetV2, CIFAR-10)
model = tf.keras.applications.MobileNetV2((32, 32, 3), classes=10, weights=None)
model.compile("adam", "sparse_categorical_crossentropy", metrics=["accuracy"])
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
# Define Flower client
class CifarClient(fl.client.NumPyClient):
  def get_parameters(self, config):
    return model.get_weights()
  def fit(self, parameters, config):
    model.set_weights(parameters)
    model.fit(x_train, y_train, epochs=1, batch_size=32)
    return model.get_weights(), len(x_train), {}
  def evaluate(self, parameters, config):
    model.set_weights(parameters)
    loss, accuracy = model.evaluate(x_test, y_test)
    return loss, len(x_test), {"accuracy": accuracy}
# Start Flower client
fl.client.start_numpy_client(server_address="127.0.0.1:8080", client=CifarClient())
GitHub 地址→github.com/adap/flower
2.5 用 AI 批量重命名文件:ai-renamer

主语言:JavaScript,Star:1.1,周增长:200
这是一个 Node.js 写的命令行工具,基于 LLM(Llava、Gemma、Llama 等)实现智能、自动化、批量重命名本地文件。它使用简单、无需人为干预,可根据文件的内容智能重命名文件,支持视频、图片和文件。
GitHub 地址→github.com/ozgrozer/ai-renamer
3. HelloGitHub 热评
在这个章节,将会分享下本周 HelloGitHub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。
3.1 免费的可视化 Web 页面构建平台:GrapesJS

主语言:TypeScript
该项目通过直观的可视化界面,让用户能够通过拖拽的方式,快速设计和构建网站的 HTML 模板。它所见即所得、移动端适配,适用于官网、新闻和 CMS 等类型的网站。
项目详情→hellogithub.com/repository/572e31f5fc7541efb19c16d331796edf
3.2 极简的 GPT-4o 客户端:gpt-computer-assistant

主语言:Python
该项目是适用于 Windows、macOS 和 Ubuntu 的 GPT-4o 客户端,它拥有极简的用户界面,支持执行多种任务,包括读取屏幕、打开应用、系统音频和文本输入等。
项目详情→hellogithub.com/repository/4688db1465d5437aab851a70ba39f1e2
4. 结尾
以上就是本期「GitHub 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 GitHub 开源项目想要分享,欢迎来 HelloGitHub 与我们交流和讨论。
往期回顾
优化 GitHub 体验的浏览器插件「GitHub 热点速览」的更多相关文章
- 穷人版生产力工具,好用得飞起 「GitHub 热点速览」
		
被 GPT 和 OpenAI 刷屏了一个多月,现在 GitHub Trending 已经没有什么和 gpt 无关的项目了,但是好在总有优秀的开源项目拯救我的项目疲惫.像是贴心好用的反向代理 pgrok ...
 - 你的梦想家居「GitHub 热点速览」
		
上周推荐的 ChatGPT 版小爱,不知道有哪些小伙伴回去尝试接入了呢?本周依旧由 2 个不错的 ChatGPT 延伸项目,一个是比 DeepL.Grammarly 更懂你的划词翻译 openai-t ...
 - 一款能“干掉” ChatGPT 的应用「GitHub 热点速览」
		
据说有了它,ChatGPT 就可以靠边站了.因为 Auto-GPT 能更加主动地完成你给他的指定任务,不用做更多的人为干涉,它的推理能力比 ChatGPT 更强,有人用它解放双手做了个 React 网 ...
 - 如何让程序更健壮「GitHub 热点速览」
		
对于 ML 模型训练而言,好的数据集能让结果更健壮,cleanlab 是一个降低数据噪音,及时帮你修正数据集错误的工具.好的工具能让你的结果更完美.同样的,RedTeam-Tools 提高了渗透测试的 ...
 - AI 能多强「GitHub 热点速览」
		
不知道 AI 在你那边是什么样的具象,在我这就是各种搞图:从给线稿图上色,到直接给你生成一张小色图,AI 最近是真出风头,本周热点速览也收录了 2 个 AI 项目,也和图像有关.还有一个和 AI 相关 ...
 - 开源不到 48 小时获 35k star 的推荐算法「GitHub 热点速览」
		
本周的热点除了 GPT 各类衍生品之外,还多了一个被马斯克预告过.在愚人节开源出来的推特推荐算法,开源不到 2 天就有了 35k+ 的 star,有意思的是,除了推荐算法本身之外,阅读源码的工程师们甚 ...
 - 碉堡!“万物皆可分”标记模型上线「GitHub 热点速览」
		
这周有个让人眼前一亮的图像识别模型 segment-anything,它能精细地框出所有可见物体,它标记出的物体边界线清晰可见.如此出色的模型,自然获得了不少人的赞赏,开源没几天,就拿下了 18k+ ...
 - 朋友圈那串神秘字符背后的开源项目「GitHub 热点速览」
		
如果你这周没刷到类似 "npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237..." 的一串字符,那就说明本期 GitHub T ...
 - 真·生产力「GitHub 热点速览」
		
这些工具真的能极大提高生产力,节约你的时间来自(摸)我(鱼)增(划)值(水).先别提 style2paints,你给它随意画个草图,就能给你一个能交付给甲方爸爸的成品插画.如果提升 30%-40% 传 ...
 - Python 霸榜的一周,又有什么新 AI 力作呢?「GitHub 热点速览」
		
GPT 带火了一波语言模型,LLaMA 和 Alpaca 也在持续发力.依旧是各类 GPT 后缀霸榜 GitHub trending 的一周,为此特推部分专门收录了两个比较不错的 GPT 应用.而作为 ...
 
随机推荐
- H264 H265 分析小工具
			
1.在调试 H264 H265 编码的流数据的时候,有时候需要打印没有nalu的类型和数量,自己写了一个小工具 使用方式: p.p1 { margin: 0; font: 22px Menlo; co ...
 - Vuex 4与状态管理实战指南
			
title: Vuex 4与状态管理实战指南 date: 2024/6/6 updated: 2024/6/6 excerpt: 这篇文章介绍了使用Vuex进行Vue应用状态管理的最佳实践,包括为何需 ...
 - 借助 DSL 来简化 Loadgen 配置
			
引言 在上篇文章中,我们介绍了如何用 Loadgen 来简化 HTTP API 的集成测试.在实际使用中会发现,编写测试时最令人"头疼"的部分是设计测试的输入和校验程序的输出,而针 ...
 - GlaDS应用
			
题目:Antarctic basal environment shaped by high-pressure flow through a subglacial river system 文章使用数值 ...
 - Mysql int类型字段插入表达式,值为0或1
			
CREATE TABLE `t_user` ( `uId` INT(11) DEFAULT NULL, `uName` VARCHAR(20) DEFAULT NULL, `uPwd` VARCHAR ...
 - post请求方式 - 使用restTemplate而不使用httpClient,headers.setContentType(MediaType.APPLICATION_JSON_UTF8)
			
public static String doPostForJson(String url, String json,String byteAuthorization) { RestTemplate ...
 - Mysql慢sql优化
			
Mysql慢sql优化 index1.MySQL的执行过程2.索引的定义3.MySQL执行计划explain or desc4.索引使用/创建规则5.弊端6.设计规范7.SQL建议 1. MySQL ...
 - SHOW PROCESSLIST 最多能显示多长的 SQL?
			
在 MySQL 中,如果我们想查看实例当前正在执行的 SQL,常用的命令是SHOW PROCESSLIST. 但如果 SQL 过长的话,就会被截断.这时,我们一般会用SHOW FULL PROCESS ...
 - 【已结束】阿珏Blog三周年特别纪念活动
			
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` [已结束]阿珏Blog三周年特别纪念活动 日期:2019- ...
 - 03-Python数据类型
			
None类型 Python3中没有NULL,取而代之的是空类型None.空列表.空字典等. None是一个特殊的Python对象,表示无. None的类型是NoneType. 如果只想声明变量,而不想 ...