Bunditって何?

Bunditというライブラリを知る機会がありました。改めて調べましたで整理しておきます。

A security linter from PyCQA と記載されています。つまりセキュリティ用のLinterです。

https://github.com/pycqa/bandit

元々、OpenStack Security Project内で開発されて、後にPyCQAに移管された、と記載されています。また、ASTを構築して、ノードレベルで危険な候補を重み付きで出す仕組みのようです。

Banditを使う

とりあえず、インストールしてBanditを使ってみましょう。pipでインストールできます。

pip install bandit

その後、以下のコマンドで実行できます。

bandit -r path/to/your/code

とりあえず、動かすだけならすぐに動きました。

個人用ツールにかけてみる

現在、ClaudeCode で Django + htmxを使って、自分用のツールを作ってみています。この開発では、画面を操作して動作確認するだけで、現時点ではコードはほぼ見ていません。ローカルで動作させているだけの状態ですが、そのプロジェクトにBanditにかけてみました。

以下がその結果です。96万行のコードに対して、3000件以上のIssueが検出されました。なかなかですね。検出結果を精査するところまで行ってませんが、今後、コレを元にコーディングエージェントに自動修正をさせてみたいですね。

Code scanned:
	Total lines of code: 960979
	Total lines skipped (#nosec): 2

Run metrics:
	Total issues (by severity):
		Undefined: 0
		Low: 3056
		Medium: 213
		High: 29
	Total issues (by confidence):
		Undefined: 0
		Low: 14
		Medium: 83
		High: 3201
Files skipped (0):

ちなみに:PyCQA って何?

PyCQAは、Python Code Quality Authorityの略です。
調べたところによると、Pythonのコード品質に関するツールをメンテナンスしてる有志のグループであり、以下のようなツールが代表的なようです。

  • flake8
  • pycodestyle
  • isort
  • bandit
  • mccabe

類似投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です