Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用Talisman检测Git代码库中是否遗留有令牌凭证等敏感信息

如何使用Talisman检测Git代码库中是否遗留有令牌凭证等敏感信息

作者头像
FB客服
发布于 2022-04-12 01:28:53
发布于 2022-04-12 01:28:53
1.1K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

关于Talisman

Talisman是一款功能强大的敏感数据检测工具,可以通过在目标代码库中设置钩子,来确保代码库中没有开发人员遗留的潜在凭证数据或敏感信息。

在该工具的帮助下,广大开发人员可以验证潜在的SSH密钥、授权令牌和私钥等。

工具下载

广大开发人员可以使用下列命令将该工具源码克隆至本地:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/thoughtworks/talisman.git

工具安装

Talisman支持macOS、Linux和Windows操作系统平台,并且能够以下列方式进行安装:

1、将Git钩子以全局Git钩子模版和CLI实用工具方式安装; 2、将Git钩子设置在单个Git库中使用;

以全局钩子模版安装

我们建议广大开发人员以Git钩子模版的形式安装和使用Talisman,因为这种方式不仅可以将Talisman安装在现有的Git代码库中,而且还可以安装在我们初始化或克隆的任何新代码库中。

首先,打开终端并运行下列命令,然后下载并安装代码库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl --silent  https://raw.githubusercontent.com/thoughtworks/talisman/master/global_install_scripts/install.bash > /tmp/install_talisman.bash && /bin/bash /tmp/install_talisman.bash
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl --silent  https://raw.githubusercontent.com/thoughtworks/talisman/master/global_install_scripts/install.bash > /tmp/install_talisman.bash && /bin/bash /tmp/install_talisman.bash pre-push

接下来,如果你没有在“$PATH”中设置“TALISMAN_HOME”的话,工具将提醒你进行配置。

最后,选择一个Talisman需要扫描的代码库,并设置一个Git钩子为符号连接。这里可以将“SEARCH_ROOT”环境变量设置为目标代码库的路径。

处理已有钩子

在全局范围内安装Talisman不会影响代码库中已有的钩子。如果工具的安装脚本找到了已有钩子,则会显示在控制台中。

安装在单个项目中

首先,使用下列命令下载Talisman的安装脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl https://thoughtworks.github.io/talisman/install.sh > ~/install-talisman.sh

chmod +x ~/install-talisman.sh

接下来,将钩子安装进单独的项目中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd my-git-project

~/install-talisman.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd my-git-project

~/install-talisman.sh pre-commit

处理已有钩子

Talisman需要通过设置来跟现有的Git钩子链接,将下列代码添加进“.pre-commit-config.yaml”即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-   repo: https://github.com/thoughtworks/talisman

    rev: ''  # Update me!

    hooks:

    # either `commit` or `push` support

    -   id: talisman-commit

# -   id: talisman-push

工具使用

工具安装完成之后,Talisman将会自动运行并检测代码库中潜在的敏感信息。一旦检测到敏感数据或潜在的安全数据泄露,Talisman便会立刻显示相关的详细信息:

以CLI工具使用

如果我们在命令行工具中执行Talisman,将会看到该工具所支持的全部选项参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-c, --checksum string          校验和计算,建议.talismanrc格式

  -d, --debug                   启用调试模式

  -g, --githook string             以pre-push或pre-commit方式设置钩子

      --ignoreHistory            以当前线程扫描所有文件

  -i, --interactive                交互式更新Talisman

  -p, --pattern string            扫描文件模式

  -r, --reportdirectory string      存储扫描报告的路径

  -s, --scan                    扫描Git提交历史

  -w, --scanWithHtml            生成HTML报告

  -v, --version                 显示Talisman当前版本

生成HTML报告

下列命令可以生成HTML格式报告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
talisman --scanWithHtml

上述命令将在目标代码库中创建一个名为“talisman_html_report”的目录。此时,我们需要在该代码库中启动一个HTTP服务器,以访问报告内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m SimpleHTTPServer <port> (eg: 8000)

接下来,打开浏览器并输入下列地址,即可获取HTML版本的扫描报告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8000

工具使用截图

欢迎界面

概述界面

详细报告

错误报告

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

https://github.com/thoughtworks/talisman

参考资料

https://git-scm.com/docs/git-init#_template_directory

https://github.com/thoughtworks/talisman#handling-existing-hooks

https://pre-commit.com/

https://github.com/typicode/husky/blob/master/DOCS.md

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git 是如何检测本地 commit 中包含敏感信息的?背后的技术原理解析
Git 是一个分布式版本控制系统,被广泛用于管理软件项目的源代码。它在团队协作和历史记录管理中扮演了重要角色。然而,由于代码仓库的公开性,敏感信息(如 API 密钥、私有凭证等)的泄露风险也随之增加。为了帮助开发者避免这种问题,Git 引入了多种防护机制。
编程小妖女
2025/01/17
1020
Git 是如何检测本地 commit 中包含敏感信息的?背后的技术原理解析
Git钩子工具lefthook
lefthook是由 Go 语言开发的适用于多种编程语言项目的快速且强大的 Git 钩子管理器,它可以在项目构建过程中执行一些任务,例如检查代码格式、检查依赖、测试、覆盖率检查、静态分析、持续集成等。官方介绍它的几个特点: 快速,它是用 Go 编写的,可以并行运行命令。 强大,它可以控制执行通过命令传递的执行和文件。 简单,它是一个无依赖的二进制文件,可以在任何环境中工作。
kongxx
2024/05/21
2770
防止 Git 泄漏的 5 种最佳做法
之前看过几个新闻,说是因为程序员的疏忽,将公司服务器的密钥上传到 GitHub 上,导致公司数据丢失,造成了很严重的影响,恰巧最近看到一篇英文博客有介绍如何防止 Git 泄露,下面是我的翻译内容,原文来自于 5 Best Practices To Prevent Git Leaks[1],如果有翻译不当的地方欢迎指正,希望能对你有所帮助。
出其东门
2020/04/26
2.1K0
防止 Git 泄漏的 5 种最佳做法
利用 Git Hook 自动化 Go 代码审查,提高代码质量
在日常开发中,代码质量的保证一直是团队关注的重点,尤其是随着项目规模的扩大,代码审查变得尤为重要。传统的代码审查虽然能帮助发现问题,但往往需要手动执行多次检查,并且容易受到疏漏的影响。
陈明勇
2025/01/24
2396
防手抖开源之 Git 钩子
最近“从开源到跑路”的事件逐渐增多,给涉事企业造成了不小的损失。因而相关的防范工作显得愈发重要。
技术小黑屋
2020/02/10
7240
git hook实践心得
优秀的团队必不可缺少源代码的质量管理,比如eslint、sasslint等代码检测工具,借助git hook能力,我们可以将这些工具无缝地整合到git开发工作流中。
IMWeb前端团队
2019/12/03
1.2K0
git hook实践心得
git钩子和lefthook
在项目开发过程中,我们经常需要规范化代码配置流程,此时需要一种工具,开发人员在使用git过程中按照要求的规范进行提交代码和各种代码检测或其他附加处理逻辑。
码农小辉
2022/09/06
1.2K0
git钩子和lefthook
如何使用Git-Secrets防止将敏感信息意外上传至Git库
Git-secrets是一款功能强大的开发安全工具,该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。
FB客服
2024/04/17
2650
如何使用Git-Secrets防止将敏感信息意外上传至Git库
花十分钟的时间武装你的代码库
当我们的代码库有很多人维护时,经常会出现代码风格不一致或者代码质量不过关,提交信息杂乱的情况,当然啦,即使是一个人的代码库,有的时候,自己写代码时不太注意细节,也会出现风格不一致的情况。
刘小夕
2020/08/17
2.6K0
项目git commit时卡主不良代码:husky让Git检查代码规范化工作
看完 《前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) https://www.cnblogs.com/Yellow-ice/p/15349873.html》,再次修改本文
周陆军博客
2022/07/12
1.9K0
【Git】Git 完全指南:从入门到精通
Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障项目的稳定性与可持续发展。本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
LuckiBit
2024/12/11
4.6K0
【Git】Git 完全指南:从入门到精通
如何使用truffleHog在Git库中搜索高熵字符串和敏感数据以保护代码库安全
truffleHog是一款功能强大的数据挖掘工具,该工具可以帮助广大研究人员轻松从目标Git库中搜索出搜索高熵字符串和敏感数据,我们就可以根据这些信息来提升自己代码库的安全性了。该工具可以通过深入分析目标Git库的提交历史和代码分支,来搜索出潜在的敏感信息。
FB客服
2022/04/11
3.1K0
如何使用truffleHog在Git库中搜索高熵字符串和敏感数据以保护代码库安全
面向DataOps:为Apache Airflow DAG 构建 CI/CD管道
使用 GitHub Actions 构建有效的 CI/CD 管道以测试您的 Apache Airflow DAG 并将其部署到 Amazon MWAA
DevOps云学堂
2022/10/04
3.4K0
面向DataOps:为Apache Airflow DAG 构建 CI/CD管道
手写 git hooks 脚本(pre-commit、commit-msg)
Git 能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push 等钩子(hooks)。我们可以在 pre-commit 触发时进行代码格式验证,在 commit-msg 触发时对 commit 消息和提交用户进行验证,在 pre-push 触发时进行单元测试、e2e 测试等操作。
谭光志
2022/03/24
1.9K0
手写 git hooks 脚本(pre-commit、commit-msg)
Git共享钩子脚本:实现项目代码的跨仓库同步
Git是现代软件开发中不可或缺的工具之一,它的优势之一在于它可以使用钩子脚本来执行特定的操作以满足各种需求。这篇文章将介绍Git的钩子脚本,重点关注如何使用共享钩子脚本来同步项目代码到其他项目。
八点半的Bruce、D
2023/09/14
1.2K0
Git共享钩子脚本:实现项目代码的跨仓库同步
前端代码风格自动化系列(一)之Husky
代码风格和性格一样,每个程序员都有自己的特点,但对于大家协同开发的项目,还是需要力求代码风格的一致性,以减少Bug,方便互相修改,短时间内能上手,在这条路上诞生了许许多多的工具。本系列主要介绍目前主流的前端代码格式化的工具。
河马嘴不大
2022/12/24
8360
巧用 gitHooks 提交前校验代码
在每一个使用 git 进行版本管理的仓库,都有一个目录 .git/hooks,包含 commit 各个阶段 Hooks 的脚本。这些 Hooks 在 git 操作 commit、push、merge 等得时候,可以做前置或者后置的操作,例如 pre-commit 在 git commit 前可以做代码校验,校验代码的时候使用的ESLint,格式化使用的是 prettier。Git 支持的常用钩子见下表,更多请查看官网Hooks:
刘小夕
2021/12/09
4.9K0
巧用 gitHooks 提交前校验代码
干货 | 推荐一整套 Python 开发工具
原文:https://sourcery.ai/blog/python-best-practices/
Python数据科学
2019/09/08
1.3K0
关于 git hooks 的库 husky 源码竟如此简单,你也可以写一个!
它在 git commit、git push 等 git 操作之前与之后可设置自动执行的脚本,被称为 git hooks 脚本。
山月
2021/11/10
1.2K0
tslint pre-commit 配置教程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/78309599
j_bleach
2019/07/02
1.4K0
tslint pre-commit 配置教程
推荐阅读
相关推荐
Git 是如何检测本地 commit 中包含敏感信息的?背后的技术原理解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验