diff --git a/20211230101535-python.org b/20211230101535-python.org index 1bad951..d62a83c 100644 --- a/20211230101535-python.org +++ b/20211230101535-python.org @@ -1,6 +1,6 @@ :PROPERTIES: :ID: 4fabfe6a-b104-464f-8a87-dfd7d761dbcc -:mtime: 20220207072855 +:mtime: 20220306173558 :ctime: 20211230101535 :END: #+title: Python @@ -20,6 +20,9 @@ *** [[id:6cc56ee4-6d42-4d50-beb3-bb22a98298dd][textual]] * Outils +** Analyseur statique de code +*** [[id:1d258869-5421-496a-b296-2d157ebdf3b6][mypy]] +*** [[id:113a938e-3fb2-45cb-ae6e-41801418139b][bandit]] ** Formatter *** [[https://github.com/hhatto/autopep8][autopep8]] Utilitaire formattant le code afin de respecter la [[https://www.python.org/dev/peps/pep-0008/][PEP8]] guideline. Il est basé sur l'analyse de code effectuée par @@ -31,6 +34,10 @@ En plus de vérifier la conformité avec la [[https://www.python.org/dev/peps/p *** [[https://black.readthedocs.io/en/stable/][Black]] Formatter n'appliquant que le style [[https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html][/black/]]. Il accepte la même synthaxe de contrôle que YAPF. +* Modules intéressants +** Vulnérabilités/Cyber +*** [[id:ba4c7c25-ee27-4b5e-8ef7-ba2ecc34f127][defusedxml]] + * Tips ** [[id:4ef76164-0e67-410a-8d26-b03071a0cc41][Compter la fréquence des éléments d'une liste]] ** [[id:cb3c63b9-6452-4016-9b2f-a25784941d5d][List vs deque]] diff --git a/20220306172443-bandit.org b/20220306172443-bandit.org new file mode 100644 index 0000000..bc57d11 --- /dev/null +++ b/20220306172443-bandit.org @@ -0,0 +1,13 @@ +:PROPERTIES: +:ID: 113a938e-3fb2-45cb-ae6e-41801418139b +:mtime: 20220306172631 +:ctime: 20220306172443 +:END: +#+title: bandit + +* Introduction +Bandit est un OSS détectant les failles de sécurité via l'analyse statique de code python. + +* Références + * [[https://github.com/PyCQA/bandit][Github]] + diff --git a/20220306172805-defusedxml.org b/20220306172805-defusedxml.org new file mode 100644 index 0000000..c4ace03 --- /dev/null +++ b/20220306172805-defusedxml.org @@ -0,0 +1,51 @@ +:PROPERTIES: +:ID: ba4c7c25-ee27-4b5e-8ef7-ba2ecc34f127 +:mtime: 20220306184630 +:ctime: 20220306172805 +:END: +#+title: defusedxml + +* Introduction +Module proposant une sourcouche protégeant contre les vulnérabilités de certains modules python gérant des données XML. + +Par exemple : +#+BEGIN_SRC python +from xml.etree.ElementTree import parse +et = parse(xmlfile) +#+END_SRC + +Serait à mettre à jour ainsi : +#+BEGIN_SRC python +from defusedxml.ElementTree import parse +et = parse(xmlfile) +#+END_SRC + +* Liste des vulnérabilités et fonctionnalités + +| Vulnérabilité | sax | etree | minidom | pulldom | xmlrpc | [[id:b18fe210-fac3-4f63-8041-4b686c64ee6a][lxml]] | genshi | +|--------------------------------------------+-------+-------+---------+---------+--------+------------+--------| +| [[id:7b090d0a-b96b-4d40-afec-2155a6909935][xml billion laughs]] | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (1) | ✖ (5) | +| quadratic blowup | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (5) | +| [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (remote) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✖ (1) | ✖ (5) | +| [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (local file) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✔ | ✖ (5) | +| DTD retrieval | ✔ | ✖ | ✖ | ✔ | ✖ | ✖ (1) | ✖ | +| gzip bomb | ✖ | ✖ | ✖ | ✖ | ✔ | Partly (2) | ✖ | +| xpath support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | +| xsl(t) support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | +| xinclude support (7) | ✖ | ✔ (6) | ✖ | ✖ | ✖ | ✔ (6) | ✔ | +| C library | expat | expat | expat | expat | expat | libxml2 | expat | + + +1. /lxml/ est protégé contre les attaques /billion laughs/ et ne fait pas de recherche réseau (/network lookups/) par défaut. +2. /libxml2/ et /lxml/ ne sont pas directement vulnérables aux /gzip decompression bombs/ mais ne vous protège pas contre + par ailleurs. +3. /xml.etree/ ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait. +4. /minicom/ ne développe pas les entités et retourne une entitée textuelle non développée. +5. /genshi.input/ (v0.6) ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait. +6. La librarie apporte un support limité à /XInclude/ (mécanisme de fusion) mais requiert une étape additionnelle pour + réaliser l'inclusion. +7. Il s'agit de fonctionnalités mais peuvent introduire des failles supplémentaires. + + +* Références + * [[https://github.com/tiran/defusedxml][Github]]