安全检查已安装的依赖项是否存在已知的安全漏洞。
safet的Python项目详细描述
安全检查已安装的依赖项是否存在已知的安全漏洞。
默认情况下,它使用open python漏洞数据库安全数据库,
但是可以升级为使用pyup.io的安全api,使用--key
选项。
安装
用PIP安装安全性
pip install safety
用法
检查当前选定的虚拟环境是否具有已知安全性的依赖项 脆弱性,运行:
safety check
您应该得到类似的报告:
╒══════════════════════════════════════════════════════════════════════════════╕ │ │ │ /$$$$$$ /$$ │ │ /$$__ $$|$$ │ │ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │ │ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │ │ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │ │ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │ │ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │ │ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │ │ /$$|$$ │ │ |$$$$$$/ │ │ by pyup.io \______/ │ │ │ ╞══════════════════════════════════════════════════════════════════════════════╡ │ REPORT │ ╞══════════════════════════════════════════════════════════════════════════════╡ │ No known security vulnerabilities found. │ ╘══════════════════════════════════════════════════════════════════════════════╛
现在,让我们安装一些不安全的东西:
pip install insecure-package
是的,你真的可以安装它。
再次运行安全检查
╒══════════════════════════════════════════════════════════════════════════════╕ │ │ │ /$$$$$$ /$$ │ │ /$$__ $$|$$ │ │ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │ │ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │ │ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │ │ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │ │ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │ │ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │ │ /$$|$$ │ │ |$$$$$$/ │ │ by pyup.io \______/ │ │ │ ╞══════════════════════════════════════════════════════════════════════════════╡ │ REPORT │ ╞══════════════════════════╤═══════════════╤═══════════════════╤═══════════════╡ │ package │ installed │ affected │ source │ ╞══════════════════════════╧═══════════════╧═══════════════════╧═══════════════╡ │ insecure-package │ 0.1.0 │ <0.2.0 │ changelog │ ╘══════════════════════════╧═══════════════╧═══════════════════╧═══════════════╛
示例
读取需求文件
与pip一样,safety可以读取本地需求文件:
safety check -r requirements.txt
从stdin中读取
安全性也可以通过设置的--stdin
标志从stdin读取。
要检查本地需求文件,请运行:
cat requirements.txt | safety check --stdin
或 或检查单个包裹: 有关更多示例,请查看选项部分。 作为码头集装箱,安全性很容易实现。要构建容器,只需执行: 容器的使用方法与示例部分所述相同。 在你的ci管道中,安全性很好。如果发现漏洞,则返回非零退出状态。 在测试之前或之后运行它。如果安全发现问题,您的测试将失败。 特拉维斯
深入的GitHub集成 如果您正在寻找与github存储库的深度集成:安全性作为
pyup.io的一部分,称为安全ci。安全CI
检查具有已知安全漏洞的依赖项的提交和拉取请求
并在github上显示状态。 安全是免费和开放源码的(麻省理工学院许可)。基础的开放漏洞数据库每月更新一次。 要在添加所有漏洞后立即访问它们,您需要一个安全api键带有付费账户pyup.io对于组织,从99美元开始。 pyup.io的漏洞数据库的API密钥。可以设置为 示例 具有本地漏洞数据库的目录的路径,包括 示例 代理主机IP或DNS
代理端口号 代理协议(https或http) 以JSON格式输出漏洞。 示例 完整报告包括安全提示(如果可用)。 示例 仅输出易受攻击的包。可与其他工具结合使用。 示例 将请求本地缓存到漏洞数据库2小时。 示例 从stdin读取输入。 示例 从一个(或多个)需求文件中读取输入。 示例 按ID忽略一个(或多个)漏洞
示例 将报告保存到文件中
示例 如果以json格式保存报表,则可以再次以报表格式查看。 阅读不安全的报告。 示例 完整报告包括安全提示(如果可用)。 示例 仅输出易受攻击的软件包。 示例pip freeze的输出
pip freeze | safety check --stdin
echo "insecure-package==0.1" | safety check --stdin
在Docker中使用安全功能
pip install safety
0
pip install safety
1
在CI服务中使用安全功能
pip install safety
2
安全生产
选项
--键
safety_api_key
环境变量。pip install safety
3
--db
unsecure.json
和unsecure_full.json
pip install safety
4
--代理主机
--代理端口
--代理协议
--json
pip install safety
5
pip install safety
6
--完整报告
pip install safety
7
pip install safety
8
--bare
pip install safety
9
safety check
0
--缓存
safety check
1
--stdin
safety check
2
safety check
3
safety check
4
--文件
,-r
safety check -r requirements.txt
safety check
6
safety check
7
--忽略
,-i
safety check
8
safety check
9
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
0
--输出
,-o
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
1
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
2
复习
选项
--文件
,-f
(必需)╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
3
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
4
--完整报告
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
5
pip install safety
8
--bare
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
7
╒══════════════════════════════════════════════════════════════════════════════╕
│ │
│ /$$$$$$ /$$ │
│ /$$__ $$|$$ │
│ /$$$$$$$ /$$$$$$|$$\__//$$$$$$ /$$$$$$ /$$ /$$ │
│ /$$_____/ |____ $$|$$$$ /$$__ $$|_ $$_/ |$$|$$ │
│ |$$$$$$ /$$$$$$$|$$_/ |$$$$$$$$|$$|$$|$$ │
│ \____ $$ /$$__ $$|$$|$$_____/ |$$ /$$|$$|$$ │
│ /$$$$$$$/|$$$$$$$|$$|$$$$$$$ |$$$$/|$$$$$$$ │
│ |_______/ \_______/|__/ \_______/ \___/ \____ $$ │
│ /$$|$$ │
│ |$$$$$$/ │
│ by pyup.io \______/ │
│ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT │
╞══════════════════════════════════════════════════════════════════════════════╡
│ No known security vulnerabilities found. │
╘══════════════════════════════════════════════════════════════════════════════╛
8
< H1>
历史1.8.5(2019-02-04)
1.8.4(2018-08-03)
1.8.3b(2018-07-24)
1.8.2(2018-07-10)
1.8.1(2018-04-06)
1.8.0(2018-04-05)
1.7.0(2018-02-03)
1.6.1(2017-10-20)
1.6.0(2017-10-20)
1.5.1(2017-07-20)
1.5.0(2017-07-19)
1.4.1(2017-07-04)
1.4.0(2017-04-21)
--ignore
/-i
标志按ID忽略一个(或多个)漏洞的功能。1.3.0(2017-04-21)
1.2.0(2017-04-06)
--json
标志一起使用。谢谢@stype。1.1.1(2017-03-27)
1.1.0(2017-03-23)
1.0.2(2017-03-23)
1.0.1(2017-03-23)
1.0.0(2017-03-22)
0.6.0(2017-03-10)
0.5.1(2016-11-08)
0.5.0(2016-11-08)
0.4.0(2016-11-07)
0.3.0(2016-10-28)
0.2.2(2016-10-21)
0.2.1(2016-10-21)
0.2.0(2016-10-20)
0.1.0(2016-10-19)
推荐PyPI第三方库