是否有与 Rails bundler-audit 等效的 Python/Django?

Posted

技术标签:

【中文标题】是否有与 Rails bundler-audit 等效的 Python/Django?【英文标题】:Is there a Python/Django equivalent to Rails bundler-audit? 【发布时间】:2018-04-17 09:33:39 【问题描述】:

我对 Django 还很陌生,所以如果这很明显,请提前道歉。

在 Rails 项目中,我使用一个名为 bundler-audit 的 gem 来检查我正在安装的 gem 的补丁级别是否包含安全漏洞。通常,我会将运行 bundler-audit 合并到我的 CI 管道中,以便在我部署时,如果 gem 存在安全漏洞,我会收到警告(并失败)。

是否有类似的系统来检查 Python 包中的漏洞?

【问题讨论】:

【参考方案1】:

写出这个问题后,我又搜索了一些,找到了Safety,这正是我要找的。​​p>

如果其他人正在为 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 是否失败。

【讨论】:

以上是关于是否有与 Rails bundler-audit 等效的 Python/Django?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 世界中是不是有与 ASP.NET Web API 等效的工具?

Rails 3.2.3 GeoLocation 使用 MaxMind

Ruby on Rails 取消首字母大写

使用 ujs 手动提交远程表单的 Rails 方式

是否有与 Haskell 'let' 等效的 Python

是否有与 Mysql 的“多语句查询”等效的 java