我对 Django 很陌生,所以如果这很明显,请提前道歉。
在 Rails 项目中,我使用一个名为bundler-audit的 gem来检查我正在安装的 gem 的补丁级别是否包含安全漏洞。通常,我将运行bundler-audit
合并到我的 CI 管道中,以便在我部署时,如果 gem 存在安全漏洞,我会收到警告(并失败)。
是否有类似的系统来检查 Python 包中的漏洞?
我对 Django 很陌生,所以如果这很明显,请提前道歉。
在 Rails 项目中,我使用一个名为bundler-audit的 gem来检查我正在安装的 gem 的补丁级别是否包含安全漏洞。通常,我将运行bundler-audit
合并到我的 CI 管道中,以便在我部署时,如果 gem 存在安全漏洞,我会收到警告(并失败)。
是否有类似的系统来检查 Python 包中的漏洞?
写完这个问题后,我又搜索了一些,找到了Safety,这正是我要找的。
如果其他人正在为 Django 项目设置 CircleCI 并想要检查他们的包是否存在漏洞,这是我在我的 中使用的配置.circleci/config.yml
:
version: 2
jobs:
build:
# build and run tests
safety_check:
docker:
- image: circleci/python:3.6.1
steps:
- checkout
- run:
command: |
python3 -m venv env3
. env3/bin/activate
pip install safety
# specify requirements.txt
safety check -r requirements.txt
merge_master:
# merge passing code into master
workflows:
version: 2
test_and_merge:
jobs:
- build:
filters:
branches:
ignore: master
- safety_check:
filters:
branches:
ignore: master
- merge_master:
filters:
branches:
only: develop
requires:
- build
# code is only merged if safety check passes
- safety_check
要检查这是否有效,请运行pip install insecure-package && pip freeze > requirements.txt
然后推送并观察 Circle 是否失败。