高端公司网站,淘宝商城网站建设,接网站开发项目平台,国内网站不备案可以吗关于Git-Secrets
Git-secrets是一款功能强大的开发安全工具#xff0c;该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明#xff0c;当与用户预先配置的正则表达式模式匹配时#xff0c;便会阻止此次提交。该工具的优…关于Git-Secrets
Git-secrets是一款功能强大的开发安全工具该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明当与用户预先配置的正则表达式模式匹配时便会阻止此次提交。该工具的优势在于可以集成到CI/CD管道中以实时监控提交信息但不足之处在于该工具主要基于正则表达式实现其检测功能因此可能会有一定程度的误报。
工具安装
广大研究人员可以使用下列命令将该项目源码克隆至本地
git clone https://github.com/awslabs/git-secrets.git
然后切换到项目目录中根据对应的操作系统执行不同的安装命令
cd git-secrets
*nixLinux/macOS
make install
Windows
PS ./install.ps1
Homebrew安装
brew install git-secrets
工具使用命令
git secrets --scan [-r|--recursive] [--cached] [--no-index] [--untracked] [files...]git secrets --scan-historygit secrets --install [-f|--force] [target-directory]git secrets --list [--global]git secrets --add [-a|--allowed] [-l|--literal] [--global] patterngit secrets --add-provider [--global] command [arguments...]git secrets --register-aws [--global]git secrets --aws-provider [credentials-file]
--scan命令
扫描代码库中所有文件
git secrets --scan
扫描单个文件
git secrets --scan /path/to/file
递归扫描目录
git secrets --scan -r /path/to/directory
扫描多个文件
git secrets --scan /path/to/file /path/to/other/file
全局扫描
git secrets --scan /path/to/directory/*
从stdin扫描
echo hello! | git secrets --scan -
--add命令
向当前代码库添加禁止的正则模式
git secrets --add [A-Z0-9]{20}
向全局git配置添加禁止的正则模式
git secrets --add --global [A-Z0-9]{20}
添加一个逐字扫描的字符串字符会被转义
git secrets --add --literal foobar
添加允许的正则模式
git secrets --add -a allowed pattern
工具使用样例
假设我们给定下列主题的文本信息存储在/tmp/example中
This is a test!passwordexmplepasswordpassword******More test...
并注册以下正则检测模式
git secrets --add password\s*\s*.git secrets --add --allowed --literal exmplepassword
运行下列命令
git secrets --scan /tmp/example
执行后工具会输出下列错误信息
/tmp/example:3:password******[ERROR] Matched prohibited patternPossible mitigations:- Mark false positives as allowed using: git config --add secrets.allowed ...- List your configured patterns: git config --get-all secrets.patterns- List your configured allowed patterns: git config --get-all secrets.allowed- Use --no-verify if this is a one-time false positive
上述正则表达式模式“password\s*\s*.”将匹配下列内容
/tmp/example:2:passwordexmplepassword/tmp/example:3:password******
不过第一行password会被忽略因为它匹配第一个允许通过的正则表达式“exmplepassword”。
我们还可以使用下列命令将整个文件列入白名单中
git secrets --add --allowed /tmp/example:.*git secrets --scan /tmp/example echo $?# Outputs: 0
或者指定某个文件的指定行代码列入白名单
git secrets --add --allowed /tmp/example:3:.*git secrets --scan /tmp/example echo $?# Outputs: 0
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Git-Secrets【GitHub传送门】