102人参与 • 2024-08-04 • 设计模式
上周,github 有个"安全问题"------cfor(cross fork object reference)冲上了热搜,该问题的表现是:
远程仓库的提交内容任何人可以访问,即使已被删除。只需要拿到 commit id+源/fork 的项目地址,任何人都能访问之前提交到远程仓库的内容。下面有 3 个演示,可以复现该问题:
演示一:fork 项目已删除,之前的提交所有人可见,复现步骤如下:
演示二:源(上游)项目已被删除,但通过 fork 项目地址和 commit id,仍可访问源项目的提交内容。
演示三:源项目是私有项目,被 fork(私有)后,源项目设置为公开,此时 fork 项目中的私有内容可被任何人访问。
对此,github 官方很早之前就回应过,这些不是 bug,而是故意为之的特性。既然如此,我们应该如何规避这些安全隐患呢?限于篇幅,详细讨论将在正文中展开。
说回本周的开源热搜项目,第一个开源项目是推荐给 github 产品经理的 refined-github,这是一个来自"民间"的优化 github 使用体验的浏览器插件。一体化的令牌管理平台 infisical,能够有效地防止令牌和密钥信息泄漏。友好的联邦学习框架 flower,开箱即用对新手友好。
最后,极简的 gpt-4o 客户端和用 ai 智能批量重命名文件的工具 ai-renamer,都是能帮你提升效率的 llm 应用神器。
爆出这个问题的文章,原标题是《anyone can access deleted and private repository data on github》,我认为有些夸张,因为必须满足以下条件:
但删除/私有内容能在公网访问,这设计确实"反人类"。如果官方不改进,我们只能规范使用 github 的流程来防止机密泄露,下面是我给出的建议:
最后,值得一提的是 git 悬空提交 ,它通常用于找回被误删和被 force 掉的提交。如果你曾经"有幸"用过:git fsck --lost-found
命令,当时的心情大概是劫后余生,感谢这条神命令又救了你一命!
主语言:typescript ,star:23.8k ,周增长:200
这是一个简化 github 界面并添加实用功能的开源浏览器插件,它通过移除页面的多余元素让界面和交互更加简洁,新增了空白字符可见、一键合并修复冲突和放弃 pr 中某个文件的所有修改等实用功能,优化了 github 使用体验,支持 chrome 和 firefox 浏览器。
主语言:typescript ,star:13.3k ,周增长:150
该项目可以帮助团队集中管理应用配置和机密信息,防止 api token、密码和公钥等信息泄漏。它提供了简单的界面、客户端 sdk、命令行工具和 api 接口,方便集中管理并集成进现有的项目和 ci/cd 流程,同时还支持令牌扫描等功能,防止 git 提交时泄密。
主语言:other ,star:7.3k ,周增长:170
这是一本关于如何为 linux 内核编写模块的指南,包含了针对最新的 5.x 和 6.x 内核版本的示例。linux 内核模块是为 linux 内核添加新功能的一种方法,无需修改内核本身和重启系统,编写此类程序需要具有 c 编程语言基础。
主语言: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())
主语言:javascript ,star:1.1k ,周增长:200
这是一个 node.js 写的命令行工具,基于 llm(llava、gemma、llama 等)实现智能、自动化、批量重命名本地文件。它使用简单、无需人为干预,可根据文件的内容智能重命名文件,支持视频、图片和文件。
在这个章节,将会分享下本周 hellogithub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。
主语言:typescript
该项目通过直观的可视化界面,让用户能够通过拖拽的方式,快速设计和构建网站的 html 模板。它所见即所得、移动端适配,适用于官网、新闻和 cms 等类型的网站。
主语言:python
该项目是适用于 windows、macos 和 ubuntu 的 gpt-4o 客户端,它拥有极简的用户界面,支持执行多种任务,包括读取屏幕、打开应用、系统音频和文本输入等。
以上就是本期「github 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 github 开源项目想要分享,欢迎来 hellogithub 与我们交流和讨论。
往期回顾
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论