社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

HelloGitHub • 5 月前 • 191 次点击  

上周,GitHub 有个“安全问题”——CFOR(Cross Fork Object Reference)冲上了热搜,该问题的表现是:

远程仓库的提交内容任何人可以访问,即使已被删除。只需要拿到 commit ID+源/Fork 的项目地址,任何人都能访问之前提交到远程仓库的内容。下面有 3 个演示,可以复现该问题:

演示一:Fork 项目已删除,之前的提交所有人可见,复现步骤如下:

  1. Fork 任意公开的开源项目(源项目)
  2. 在 Fork 项目中提交 commit 并推送到远程仓库(push)
  3. 记下 commit ID 后删除 Fork 项目
  4. 访问源项目,并在地址栏拼接上 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 问题的建议

爆出这个问题的文章,原标题是《Anyone can Access Deleted and Private Repository Data on GitHub》,我认为有些夸张,因为必须满足以下条件:

  1. 你需要推送改动到远程仓库
  2. 你必须知道特定的 commit ID
  3. 机密信息本身就不应该推送到远程仓库

但删除/私有内容能在公网访问,这设计确实“反人类”。如果官方不改进,我们只能规范使用 GitHub 的流程来防止机密泄露,下面是我给出的建议:

  1. 不要在项目中放明文的密钥和令牌等机密信息,应该放在本地的环境变量中。
  2. 避免直接在 GitHub 网页上进行敏感操作,因为会自动执行 push 操作。
  3. 在本地设置 git hook 自动进行泄密检查,从源头控制泄密风险。
  4. 在将私有项目开源之前,必须进行脱敏检查。此外,即使开发私有的 Fork 项目,也应加上防止泄密的检查流程。

最后,值得一提的是 git 悬空提交,它通常用于找回被误删和被 force 掉的提交。如果你曾经“有幸”用过:git fsck –lost-found 命令,当时的心情大概是劫后余生,感谢这条神命令又救了你一命!

git push 命令不会推送悬空提交。

2. 开源热搜项目

2.1 优化 GitHub 体验的浏览器插件:refined-github

主语言:TypeScriptStar:23.8k周增长:200

这是一个简化 GitHub 界面并添加实用功能的开源浏览器插件,它通过移除页面的多余元素让界面和交互更加简洁,新增了空白字符可见、一键合并修复冲突和放弃 PR 中某个文件的所有修改等实用功能,优化了 GitHub 使用体验,支持 Chrome 和 Firefox 浏览器。

GitHub 地址→github.com/refined-github/refined-github

2.2 一体化的令牌管理平台:Infisical

主语言:TypeScriptStar:13.3k周增长:150

该项目可以帮助团队集中管理应用配置和机密信息,防止 API TOKEN、密码和公钥等信息泄漏。它提供了简单的界面、客户端 SDK、命令行工具和 API 接口,方便集中管理并集成进现有的项目和 CI/CD 流程,同时还支持令牌扫描等功能,防止 git 提交时泄密。

GitHub 地址→github.com/Infisical/infisical

2.3 Linux 内核模块编程指南:lkmpg

主语言:OtherStar:7.3k周增长:170

这是一本关于如何为 Linux 内核编写模块的指南,包含了针对最新的 5.x 和 6.x 内核版本的示例。Linux 内核模块是为 Linux 内核添加新功能的一种方法,无需修改内核本身和重启系统,编写此类程序需要具有 C 编程语言基础。

GitHub 地址→github.com/sysprog21/lkmpg

2.4 友好的联邦学习框架:Flower

主语言:PythonStar: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((32323), 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

主语言:JavaScriptStar:1.1k周增长: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 与我们交流和讨论。

往期回顾

- END -

👆 关注「HelloGitHub」第一时间收到更新👆

点击阅读原文访问开源社区

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/172757
 
191 次点击