- Joined
- Dec 3, 2020
- Messages
- 1,722
Bandit is a tool designed to find common security issues in Python code. To do this Bandit processes each file, builds an AST from it, and runs appropriate plugins against the AST nodes. Once Bandit has finished scanning all the files it generates a report. Bandit was originally developed within the OpenStack Security Project and later rehomed to PyCQA.
Installation
Bandit is distributed on PyPI. The best way to install it is with pip:
Create a virtual environment (optional):
Code:
virtualenv bandit-env
Install Bandit:
Code:
pip install bandit
# Or if you're working with a Python 3 project
Code:
pip3 install bandit
Run Bandit:
Code:
bandit -r path/to/your/code
Bandit can also be installed from source. To do so, download the source tarball from PyPI, then install it:
Code:
python setup.py install
Usage
Example usage across a code tree:
Code:
bandit -r ~/your_repos/project
Example usage across the examples/ directory, showing three lines of context and only reporting on the
high-severity issues:
Code:
bandit examples/*.py -n 3 -lll
Bandit can be run with profiles. To run Bandit against the examples directory using only the plugins listed in the ShellInjectionprofile:
Code:
bandit examples/*.py -p ShellInjection
Bandit also supports passing lines of code to scan using standard input. To run Bandit with standard input:
Code:
cat examples/imports.py | bandit -
Installation
Bandit is distributed on PyPI. The best way to install it is with pip:
Create a virtual environment (optional):
Code:
virtualenv bandit-env
Install Bandit:
Code:
pip install bandit
# Or if you're working with a Python 3 project
Code:
pip3 install bandit
Run Bandit:
Code:
bandit -r path/to/your/code
Bandit can also be installed from source. To do so, download the source tarball from PyPI, then install it:
Code:
python setup.py install
Usage
Example usage across a code tree:
Code:
bandit -r ~/your_repos/project
Example usage across the examples/ directory, showing three lines of context and only reporting on the
high-severity issues:
Code:
bandit examples/*.py -n 3 -lll
Bandit can be run with profiles. To run Bandit against the examples directory using only the plugins listed in the ShellInjectionprofile:
Code:
bandit examples/*.py -p ShellInjection
Bandit also supports passing lines of code to scan using standard input. To run Bandit with standard input:
Code:
cat examples/imports.py | bandit -