Skip to content

Commit 0f1e428

Browse files
committed
📝 Add bandit rules to security
1 parent e177f15 commit 0f1e428

1 file changed

Lines changed: 38 additions & 5 deletions

File tree

docs/productive/security.rst

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,36 @@ Risk: Medium
182182
run. This can prevent known types of errors from being inadvertently introduced
183183
into the codebase.
184184

185-
To check for vulnerabilities, you can use `Bandit
186-
<https://github.com/PyCQA/bandit>`__ with :doc:`qa/ruff`, which you can also
187-
integrate into Jupyter Notebooks, IDEs and the pre-commit framework.
188-
189-
You can also use :doc:`/productive/qa/pysa` for `taint
185+
.. _bandit:
186+
187+
`Bandit <https://github.com/PyCQA/bandit>`__, which you can use with
188+
:doc:`qa/ruff`, allows you to check for the following vulnerabilities, amongst
189+
others:
190+
191+
+--------+-----------------------------------------------------------------------+
192+
| Rule | Description |
193+
+--------+-----------------------------------------------------------------------+
194+
| `S105`_| Hard-coded secrets |
195+
+--------+-----------------------------------------------------------------------+
196+
| `S301`_| :doc:`/data-processing/serialisation-formats/pickle/index` and other |
197+
| | insecure deserialisation |
198+
+--------+-----------------------------------------------------------------------+
199+
| `S307`_| Use of :func:`eval` with untrusted input |
200+
+--------+-----------------------------------------------------------------------+
201+
| `S113`_| Missing timeouts |
202+
+--------+-----------------------------------------------------------------------+
203+
| `S324`_| Weak cryptography, such as MD5 collisions |
204+
+--------+-----------------------------------------------------------------------+
205+
| `S608`_| SQL injection via string formatting |
206+
+--------+-----------------------------------------------------------------------+
207+
208+
.. seealso:
209+
`flake8-bandit <https://docs.astral.sh/ruff/rules/#flake8-bandit-s>`_
210+
211+
You can also integrate Bandit into Jupyter Notebooks, IDEs and the pre-commit
212+
framework.
213+
214+
In addition, you can use :doc:`/productive/qa/pysa` for `taint
190215
<https://en.wikipedia.org/wiki/Taint_checking>`_ analyses.
191216

192217
For GitHub repositories you can also use `CodeQL <https://codeql.github.com>`_;
@@ -289,3 +314,11 @@ reduce this risk by
289314
* automated tools that notify you when dependencies in your project are out of
290315
date
291316
* update applications that lock dependencies quickly.
317+
318+
.. _S105: https://docs.astral.sh/ruff/rules/hardcoded-password-string/
319+
.. _S301: https://docs.astral.sh/ruff/rules/suspicious-pickle-usage/
320+
.. _S307: https://docs.astral.sh/ruff/rules/suspicious-eval-usage/
321+
.. _S113: https://docs.astral.sh/ruff/rules/request-without-timeout/
322+
.. _S324: https://docs.astral.sh/ruff/rules/hashlib-insecure-hash-function/
323+
.. _S608: https://docs.astral.sh/ruff/rules/hardcoded-sql-expression/
324+
.. _S608: https://docs.astral.sh/ruff/rules/hardcoded-sql-expression/

0 commit comments

Comments
 (0)