【问题标题】:Bandit Issue with Pyproject.tomlPyproject.toml 的强盗问题
【发布时间】:2023-01-03 00:29:34
【问题描述】:

我正在尝试使用 pyproject.toml 来排除 venv/ 目录。但它没有识别该选项。

[tool.bandit]
exclude = "/venv"

[tool.black]
exclude = "(venv)"

[tool.isort]
profile = "black"
skip = "venv"
balanced_wrapping = true
atomic = true

如果我像这样使用 CLI 选项:

$ bandit -v -r . --exclude "/venv"

该目录被排除在外。但是如果我只运行 bandit,它不会排除目录,即使我在 pyproject.toml 中有它。

我的强盗版本是:1.7.1。

【问题讨论】:

    标签: python bandit


    【解决方案1】:

    exclude 对我不起作用,所以我查看了 official docs 并发现了这个:

    我们可以指定要以列表格式排除的目录(以及文件)

    pyproject.toml:

    [tool.bandit]
    exclude_dirs = ["venv",]
    

    来自this文档:

    “您也可以通过 pyproject.toml 文件配置强盗。在这种情况下,您也可以通过 -c 显式指定配置路径。”

    因此,CLI 选项将如下所示:

    bandit -v -r . -c "pyproject.toml"
    

    (也可以不用引号工作)



    我以前从未使用过 bandit,所以如果我答错了你的问题 - 请随时回复,我们会解决的:D

    【讨论】:

    • 还有一个细节留给了粗心的人:如果您使用 Python 3.11 之前的版本,则需要安装 toml 模块或使用 bandit[toml] 来引入可选依赖项。 github.com/PyCQA/bandit/issues/318 触及需要明确的 -c 参数。
    【解决方案2】:

    要排除目录 venv,此命令适用于我:

    bandit -r --exclude venv/ .
    

    您必须先设置所有选项,然后再设置要扫描的目录。

    如果这不起作用,可以为 venv 设置绝对路径。

    bandit -r --exclude $(pwd)/venv/ .
    

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2020-04-08
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 2022-07-07
      相关资源
      最近更新 更多