Python Vulnerability Scanner: Secure Your Dependencies
Scanner de Vulnérabilités Python : Sécurisez vos Dépendances
Last updated: April 2026
Dernière mise à jour : avril 2026
The Python Dependency Security Problem
Le problème de sécurité des dépendances Python
The Python Package Index (PyPI) hosts over 500,000 packages and serves billions of downloads every month. Python powers everything from web applications with Django and Flask to data science pipelines, machine learning infrastructure, and DevOps automation. This ubiquity makes the Python ecosystem an increasingly attractive target for supply chain attacks.
Le Python Package Index (PyPI) héberge plus de 500 000 packages et sert des milliards de téléchargements chaque mois. Python alimente tout, des applications web avec Django et Flask aux pipelines de data science, l'infrastructure de machine learning et l'automatisation DevOps. Cette ubiquité fait de l'écosystème Python une cible de plus en plus attrayante pour les attaques de supply chain.
Unlike npm, Python's packaging landscape is fragmented across multiple tools: pip, poetry, pipenv, conda, and uv each have their own lockfile formats and dependency resolution strategies. This fragmentation makes it harder to maintain a consistent security posture across projects. A team might use requirements.txt for one project, poetry.lock for another, and Pipfile.lock for a third—each requiring different audit tools and workflows.
Contrairement à npm, le paysage de packaging Python est fragmenté entre plusieurs outils : pip, poetry, pipenv, conda et uv ont chacun leurs propres formats de lockfile et stratégies de résolution de dépendances. Cette fragmentation rend plus difficile le maintien d'une posture de sécurité cohérente entre les projets. Une équipe peut utiliser requirements.txt pour un projet, poetry.lock pour un autre, et Pipfile.lock pour un troisième—chacun nécessitant des outils d'audit et des workflows différents.
Recent high-profile incidents have underscored these risks. In 2022, researchers discovered thousands of typosquatting packages on PyPI designed to steal credentials and inject backdoors. The ctx package hijack exposed AWS keys of developers who installed what they thought was a trusted library. In 2023, malicious packages disguised as popular AI libraries targeted the growing machine learning community. These attacks demonstrate that any Python project with third-party dependencies is a potential target.
Des incidents récents de grande envergure ont souligné ces risques. En 2022, des chercheurs ont découvert des milliers de packages de typosquatting sur PyPI conçus pour voler des identifiants et injecter des backdoors. Le détournement du package ctx a exposé les clés AWS de développeurs qui avaient installé ce qu'ils pensaient être une bibliothèque de confiance. En 2023, des packages malveillants déguisés en bibliothèques IA populaires ciblaient la communauté grandissante du machine learning. Ces attaques démontrent que tout projet Python avec des dépendances tierces est une cible potentielle.
The challenge is compounded by Python's execution model: setup.py and pyproject.toml build scripts can execute arbitrary code during installation. A single pip install command can run untrusted code on your machine before you've even imported the package. This makes proactive vulnerability monitoring not just useful, but essential.
Le défi est amplifié par le modèle d'exécution de Python : les scripts de build setup.py et pyproject.toml peuvent exécuter du code arbitraire pendant l'installation. Une seule commande pip install peut exécuter du code non fiable sur votre machine avant même que vous ayez importé le package. Cela rend le monitoring proactif des vulnérabilités non seulement utile, mais essentiel.
How to Check Python Vulnerabilities
Comment vérifier les vulnérabilités Python
Using pip audit
Utiliser pip audit
The pip-audit tool (maintained by the Python Packaging Authority) scans your installed packages or a requirements file against the OSV.dev vulnerability database. It's the closest Python equivalent to npm audit.
L'outil pip-audit (maintenu par la Python Packaging Authority) scanne vos packages installés ou un fichier requirements contre la base de vulnérabilités OSV.dev. C'est l'équivalent Python le plus proche de npm audit.
Install and run a basic audit:
Installer et lancer un audit basique :
$ pip install pip-audit
$ pip-audit
Found 4 known vulnerabilities in 3 packages
Name Version ID Fix Versions
---------- ------- ------------------ ------------
django 3.2.15 GHSA-jrh2-hc4r-7jwx 3.2.16
requests 2.28.0 PYSEC-2023-74 2.31.0
cryptography 38.0.4 GHSA-w7pp-m8wf-vj6r 39.0.1
urllib3 1.26.12 GHSA-v845-jxx5-vc9f 1.26.18
For CI/CD pipelines, JSON output is more useful:
Pour les pipelines CI/CD, la sortie JSON est plus utile :
$ pip-audit --format json --output audit-report.json
$ pip-audit -r requirements.txt --format json
Using safety check
Utiliser safety check
The safety CLI (by SafetyCLI) is another popular option. It checks your dependencies against a curated vulnerability database:
Le CLI safety (par SafetyCLI) est une autre option populaire. Il vérifie vos dépendances contre une base de vulnérabilités curée :
$ pip install safety
$ safety check -r requirements.txt
+==============================================================================+
| |
| /$$$$$$ /$$ |
| /$$__ $$ | $$ |
| | $$ \__/ /$$$$$$ | $$$$$$$ /$$$$$$ |
| \$$$$$$ |____ $$| $$_ $$ /$$__ $$ |
| \____ $$ /$$$$$$$| $$ \ $$ | $$$$$$$$ |
| /$$ \ $$/$$__ $$| $$ | $$ | $$_____/ |
| | $$$$$$/ $$$$$$$| $$ | $$ | $$$$$$$ |
| \______/ \_______/|__/ |__/ \_______/ |
| |
+==============================================================================+
3 vulnerabilities found
Using poetry check and poetry audit
Utiliser poetry check et poetry audit
If you use Poetry, the poetry audit command (available since Poetry 1.6) checks your locked dependencies for vulnerabilities:
Si vous utilisez Poetry, la commande poetry audit (disponible depuis Poetry 1.6) vérifie les vulnérabilités de vos dépendances verrouillées :
$ poetry audit
Checking dependencies for known security vulnerabilities...
Package Installed Affected CVE
--------- --------- --------- ---------------
django 3.2.15 <3.2.16 CVE-2022-41323
pillow 9.2.0 <9.3.0 CVE-2022-45198
The limitations of manual scanning
Les limites du scan manuel
All these tools share the same fundamental limitations: they're point-in-time, single-project commands that you must remember to run. Each tool only works with its own package manager—pip-audit for pip, poetry audit for Poetry, pipenv check for Pipenv. If your team uses multiple Python package managers across different projects, you need multiple tools and workflows.
Tous ces outils partagent les mêmes limitations fondamentales : ce sont des commandes ponctuelles, mono-projet que vous devez penser à exécuter. Chaque outil ne fonctionne qu'avec son propre gestionnaire de packages—pip-audit pour pip, poetry audit pour Poetry, pipenv check pour Pipenv. Si votre équipe utilise plusieurs gestionnaires de packages Python sur différents projets, vous avez besoin de multiples outils et workflows.
Why Manual Scanning Fails
Pourquoi le scan manuel échoue
Running pip-audit or safety check once is easy. Doing it consistently across every project, every day, is where teams fail. Here's why manual Python vulnerability scanning doesn't scale:
Exécuter pip-audit ou safety check une fois est facile. Le faire de manière cohérente sur chaque projet, chaque jour, c'est là que les équipes échouent. Voici pourquoi le scan manuel des vulnérabilités Python ne passe pas à l'échelle :
- You forget to scan. New CVEs are published daily. The critical Django vulnerability disclosed today won't be caught until someone remembers to run the audit tool—which could be days or weeks later.
- One project at a time. Each command audits a single project. If you manage 10 Django applications, 5 Flask APIs, and 3 data pipelines, that's 18 separate audit commands you need to run and review.
- No alerts when it matters. A critical vulnerability in
requests,cryptography, ordjangocan be published at any time. Manual tools don't notify you—you only discover the issue the next time you remember to check. - No historical tracking. Was this vulnerability present in last month's scan? When was it introduced? Is your security posture improving or degrading? Manual scanning gives you snapshots, not trends.
- Fragmented tooling. pip-audit, safety, poetry audit, pipenv check—each works only with its respective package manager. A team using multiple Python tools needs to maintain multiple audit workflows, multiplying the chance that something slips through.
- No stakeholder reporting. Agencies and consultancies need to demonstrate security diligence to clients. Terminal output doesn't translate into professional reports that clients and compliance teams expect.
- Vous oubliez de scanner. De nouveaux CVE sont publiés quotidiennement. La vulnérabilité critique Django divulguée aujourd'hui ne sera pas détectée tant que quelqu'un ne pensera pas à lancer l'outil d'audit—ce qui peut prendre des jours ou des semaines.
- Un projet à la fois. Chaque commande audite un seul projet. Si vous gérez 10 applications Django, 5 APIs Flask et 3 pipelines de données, ce sont 18 commandes d'audit distinctes à exécuter et vérifier.
- Aucune alerte quand ça compte. Une vulnérabilité critique dans
requests,cryptographyoudjangopeut être publiée à tout moment. Les outils manuels ne vous préviennent pas—vous ne découvrez le problème que la prochaine fois que vous pensez à vérifier. - Aucun suivi historique. Cette vulnérabilité était-elle présente dans le scan du mois dernier ? Quand a-t-elle été introduite ? Votre posture de sécurité s'améliore-t-elle ou se dégrade-t-elle ? Le scan manuel vous donne des instantanés, pas des tendances.
- Outillage fragmenté. pip-audit, safety, poetry audit, pipenv check—chacun ne fonctionne qu'avec son gestionnaire de packages respectif. Une équipe utilisant plusieurs outils Python doit maintenir plusieurs workflows d'audit, multipliant les risques que quelque chose passe entre les mailles du filet.
- Pas de reporting pour les parties prenantes. Les agences et les consultants doivent démontrer leur diligence sécuritaire à leurs clients. La sortie terminal ne se traduit pas en rapports professionnels attendus par les clients et les équipes de conformité.
OptiBot: Continuous Python Vulnerability Monitoring
OptiBot : Monitoring continu des vulnérabilités Python
OptiBot is a Python vulnerability scanner built for teams who manage multiple projects and need more than a one-time audit. It works with all major Python package managers—pip, Poetry, and Pipenv—from a single dashboard. No Python environment required, no code access needed.
OptiBot est un scanner de vulnérabilités Python conçu pour les équipes qui gèrent plusieurs projets et ont besoin de plus qu'un audit ponctuel. Il fonctionne avec tous les principaux gestionnaires de packages Python—pip, Poetry et Pipenv—depuis un tableau de bord unique. Pas d'environnement Python requis, pas d'accès au code nécessaire.
How it works
Comment ça fonctionne
Upload your lockfile
Uploadez votre lockfile
Drag and drop your requirements.txt, poetry.lock, or Pipfile.lock into OptiBot. No GitHub access, no PyPI token, no source code—just the dependency file.
Glissez-déposez votre requirements.txt, poetry.lock ou Pipfile.lock dans OptiBot. Pas d'accès GitHub, pas de token PyPI, pas de code source—juste le fichier de dépendances.
Instant vulnerability scan
Scan de vulnérabilités instantané
OptiBot queries the OSV.dev vulnerability database and cross-references every package and version in your dependency tree. Results appear in seconds.
OptiBot interroge la base de vulnérabilités OSV.dev et croise chaque package et version de votre arborescence de dépendances. Les résultats apparaissent en quelques secondes.
Daily monitoring
Monitoring quotidien
Your project is automatically re-scanned every day against the latest vulnerability data. New CVEs are matched to your exact dependency versions—no manual action required.
Votre projet est automatiquement re-scanné chaque jour avec les dernières données de vulnérabilités. Les nouveaux CVE sont associés aux versions exactes de vos dépendances—aucune action manuelle requise.
Email alerts & PDF reports
Alertes email & rapports PDF
When a new vulnerability affects your dependencies, you receive an email alert with CVE details, severity rating, and fix versions. Generate professional PDF reports for clients and stakeholders with one click.
Quand une nouvelle vulnérabilité affecte vos dépendances, vous recevez une alerte email avec les détails du CVE, le score de sévérité et les versions correctives. Générez des rapports PDF professionnels pour vos clients et parties prenantes en un clic.
Works with ALL Python package managers
Fonctionne avec TOUS les gestionnaires de packages Python
Unlike standalone tools that only support one format, OptiBot accepts:
Contrairement aux outils autonomes qui ne supportent qu'un seul format, OptiBot accepte :
requirements.txt— Standard pip format, the most common dependency file in the Python ecosystempoetry.lock— Poetry's lockfile with exact resolved versions and dependency hashesPipfile.lock— Pipenv's lockfile with pinned versions and integrity checksums
requirements.txt— Format pip standard, le fichier de dépendances le plus courant de l'écosystème Pythonpoetry.lock— Le lockfile de Poetry avec les versions résolues exactes et les hashes de dépendancesPipfile.lock— Le lockfile de Pipenv avec les versions fixées et les checksums d'intégrité
No code access required
Aucun accès au code nécessaire
OptiBot only reads package names and versions from your lockfile. It never sees your source code, never requires a GitHub integration or SSH key. This makes it ideal for agencies auditing client projects—just ask the client for their dependency file and start monitoring. No trust boundary issues, no security review required.
OptiBot ne lit que les noms de packages et les versions de votre lockfile. Il ne voit jamais votre code source, ne nécessite jamais d'intégration GitHub ni de clé SSH. C'est idéal pour les agences auditant des projets clients—demandez simplement au client son fichier de dépendances et commencez le monitoring. Pas de problème de limite de confiance, pas d'examen de sécurité requis.
Multi-stack monitoring
Monitoring multi-stack
Most Python projects don't exist in isolation. Your Django app likely has a JavaScript frontend, and your deployment might include PHP services. OptiBot also supports package-lock.json (Node.js) and composer.lock (PHP), so you can monitor your entire stack from a single dashboard.
La plupart des projets Python n'existent pas de manière isolée. Votre application Django a probablement un frontend JavaScript, et votre déploiement peut inclure des services PHP. OptiBot supporte aussi package-lock.json (Node.js) et composer.lock (PHP), vous permettant de surveiller toute votre stack depuis un seul tableau de bord.
Common Python Vulnerabilities
Vulnérabilités Python courantes
Understanding the types of vulnerabilities found in Python packages helps you assess risk and prioritize fixes. Here are the most common categories affecting the PyPI ecosystem:
Comprendre les types de vulnérabilités trouvées dans les packages Python vous aide à évaluer les risques et prioriser les corrections. Voici les catégories les plus courantes affectant l'écosystème PyPI :
Arbitrary Code Execution
Exécution de code arbitraire
The most critical category. Python's dynamic nature and features like eval(), exec(), and pickle.loads() create opportunities for attackers to execute arbitrary code. Libraries that process untrusted input—template engines, serialization libraries, YAML parsers—are frequent targets. The infamous PyYAML yaml.load() vulnerability (CVE-2020-1747) allowed remote code execution through crafted YAML documents and affected thousands of projects.
La catégorie la plus critique. La nature dynamique de Python et des fonctionnalités comme eval(), exec() et pickle.loads() créent des opportunités pour les attaquants d'exécuter du code arbitraire. Les bibliothèques qui traitent des entrées non fiables—moteurs de templates, bibliothèques de sérialisation, parseurs YAML—sont des cibles fréquentes. La fameuse vulnérabilité PyYAML yaml.load() (CVE-2020-1747) permettait l'exécution de code à distance via des documents YAML manipulés et affectait des milliers de projets.
Insecure Deserialization
Désérialisation non sécurisée
Python's pickle module is notoriously dangerous when used with untrusted data. Any library that deserializes data—whether through pickle, shelve, or custom protocols—can become a vector for remote code execution. Machine learning frameworks that load model files (often pickled objects) are particularly at risk. Never unpickle data from an untrusted source.
Le module pickle de Python est notoirement dangereux lorsqu'il est utilisé avec des données non fiables. Toute bibliothèque qui désérialise des données—que ce soit via pickle, shelve ou des protocoles personnalisés—peut devenir un vecteur d'exécution de code à distance. Les frameworks de machine learning qui chargent des fichiers de modèles (souvent des objets picklés) sont particulièrement à risque. Ne dépicklez jamais des données provenant d'une source non fiable.
Path Traversal
Traversée de chemin
Vulnerabilities where user input constructs file paths without proper sanitization. Python web frameworks, file upload handlers, and archive extraction libraries (like zipfile and tarfile) have been affected. The tarfile module's default behavior of following symlinks and extracting to absolute paths has led to multiple CVEs. Attackers can read sensitive files like /etc/passwd or overwrite application code.
Des vulnérabilités où l'entrée utilisateur construit des chemins de fichiers sans assainissement adéquat. Les frameworks web Python, les gestionnaires d'upload de fichiers et les bibliothèques d'extraction d'archives (comme zipfile et tarfile) ont été affectés. Le comportement par défaut du module tarfile qui suit les liens symboliques et extrait vers des chemins absolus a conduit à de multiples CVE. Les attaquants peuvent lire des fichiers sensibles comme /etc/passwd ou écraser le code de l'application.
Server-Side Request Forgery (SSRF)
Falsification de requête côté serveur (SSRF)
Python applications frequently make HTTP requests using libraries like requests, httpx, or urllib3. When URLs are constructed from user input without validation, attackers can force your server to make requests to internal services, cloud metadata endpoints (like 169.254.169.254 on AWS), or other sensitive resources. SSRF vulnerabilities in Python web applications are among the most commonly exploited in cloud environments.
Les applications Python font fréquemment des requêtes HTTP via des bibliothèques comme requests, httpx ou urllib3. Lorsque les URLs sont construites à partir d'entrées utilisateur sans validation, les attaquants peuvent forcer votre serveur à effectuer des requêtes vers des services internes, des endpoints de métadonnées cloud (comme 169.254.169.254 sur AWS) ou d'autres ressources sensibles. Les vulnérabilités SSRF dans les applications web Python sont parmi les plus exploitées en environnement cloud.
SQL Injection
Injection SQL
While modern ORMs like Django ORM and SQLAlchemy provide protection, vulnerabilities still arise from raw SQL queries, improperly used .extra() or .raw() methods, and vulnerable database connector libraries. Django itself has had multiple SQL injection CVEs in components like QuerySet.order_by() and JSON field lookups. Keeping your ORM and database libraries updated is critical.
Bien que les ORM modernes comme Django ORM et SQLAlchemy offrent une protection, des vulnérabilités surviennent toujours avec les requêtes SQL brutes, les méthodes .extra() ou .raw() mal utilisées, et les bibliothèques de connecteurs de bases de données vulnérables. Django lui-même a eu de multiples CVE d'injection SQL dans des composants comme QuerySet.order_by() et les lookups de champs JSON. Garder vos ORM et bibliothèques de bases de données à jour est critique.
Python Dependency Security Best Practices
Bonnes pratiques de sécurité des dépendances Python
Securing your Python supply chain requires discipline and the right tools. Follow these practices to minimize your attack surface:
Sécuriser votre supply chain Python demande de la discipline et les bons outils. Suivez ces pratiques pour minimiser votre surface d'attaque :
- Pin your dependency versions. Always use pinned versions in your requirements file (
django==4.2.11, notdjango>=4.0). Unpinned dependencies mean different environments can install different—potentially vulnerable—versions. Use a lockfile (poetry.lockorPipfile.lock) for deterministic builds. - Use lockfiles for every project. A
requirements.txtwith version ranges is not a lockfile. Usepip freeze > requirements.txt, Poetry, or Pipenv to generate files with exact versions. This ensures reproducible builds and accurate vulnerability scanning. - Audit on every CI run. Add
pip-audit -r requirements.txt --fail-on-vulnto your CI pipeline. Block deployments when known vulnerabilities are present. This is your last line of defense before code reaches production. - Separate production and development dependencies. Use
[tool.poetry.group.dev.dependencies]or separaterequirements-dev.txtfiles. Development-only packages likeipythonorpytestdon't need to be deployed to production, reducing your attack surface. - Monitor continuously, not manually. New CVEs are published daily. A project that was clean yesterday may have critical vulnerabilities today. Use a continuous monitoring tool like OptiBot to get alerted the moment a new CVE affects your dependencies—across all your projects simultaneously.
- Review new dependencies before installing. Check maintenance status, contributor count, and known vulnerabilities before adding a package. Prefer well-maintained packages from trusted authors. Consider the
pip-auditcheck as part of your code review process for any PR that adds new dependencies.
- Fixez vos versions de dépendances. Utilisez toujours des versions fixées dans votre fichier de requirements (
django==4.2.11, pasdjango>=4.0). Des dépendances non fixées signifient que différents environnements peuvent installer des versions différentes—potentiellement vulnérables. Utilisez un lockfile (poetry.lockouPipfile.lock) pour des builds déterministes. - Utilisez des lockfiles pour chaque projet. Un
requirements.txtavec des plages de versions n'est pas un lockfile. Utilisezpip freeze > requirements.txt, Poetry ou Pipenv pour générer des fichiers avec des versions exactes. Cela garantit des builds reproductibles et un scan de vulnérabilités précis. - Auditez à chaque exécution CI. Ajoutez
pip-audit -r requirements.txt --fail-on-vulnà votre pipeline CI. Bloquez les déploiements quand des vulnérabilités connues sont présentes. C'est votre dernière ligne de défense avant que le code n'atteigne la production. - Séparez les dépendances de production et de développement. Utilisez
[tool.poetry.group.dev.dependencies]ou des fichiersrequirements-dev.txtséparés. Les packages uniquement pour le développement commeipythonoupytestn'ont pas besoin d'être déployés en production, réduisant votre surface d'attaque. - Surveillez en continu, pas manuellement. De nouveaux CVE sont publiés quotidiennement. Un projet propre hier peut avoir des vulnérabilités critiques aujourd'hui. Utilisez un outil de monitoring continu comme OptiBot pour être alerté dès qu'un nouveau CVE affecte vos dépendances—sur tous vos projets simultanément.
- Vérifiez les nouvelles dépendances avant installation. Vérifiez l'état de maintenance, le nombre de contributeurs et les vulnérabilités connues avant d'ajouter un package. Préférez les packages bien maintenus d'auteurs de confiance. Intégrez la vérification
pip-auditdans votre processus de revue de code pour toute PR ajoutant de nouvelles dépendances.
Frequently Asked Questions
Questions fréquentes
How is OptiBot different from pip-audit?
En quoi OptiBot est-il différent de pip-audit ?
pip-audit is a command-line tool for one-time, single-project scanning that requires a Python environment. OptiBot provides continuous daily monitoring across all your projects from a web dashboard, with email alerts and PDF reports. You upload a lockfile once, and OptiBot monitors it for you—no terminal or Python installation required. OptiBot also supports Poetry and Pipenv lockfiles, not just pip.
pip-audit est un outil en ligne de commande pour un scan ponctuel, mono-projet, qui nécessite un environnement Python. OptiBot fournit un monitoring quotidien continu sur tous vos projets depuis un tableau de bord web, avec des alertes email et des rapports PDF. Vous uploadez un lockfile une fois, et OptiBot le surveille pour vous—aucun terminal ni installation Python nécessaire. OptiBot supporte aussi les lockfiles Poetry et Pipenv, pas seulement pip.
Which Python lockfile formats does OptiBot support?
Quels formats de lockfile Python OptiBot supporte-t-il ?
OptiBot supports requirements.txt (pip), poetry.lock (Poetry), and Pipfile.lock (Pipenv). All three formats are parsed to extract package names and pinned versions, which are then checked against the OSV.dev vulnerability database.
OptiBot supporte requirements.txt (pip), poetry.lock (Poetry) et Pipfile.lock (Pipenv). Les trois formats sont parsés pour extraire les noms de packages et les versions fixées, qui sont ensuite vérifiées contre la base de vulnérabilités OSV.dev.
Do I need to give OptiBot access to my code or GitHub?
Dois-je donner à OptiBot accès à mon code ou à GitHub ?
No. OptiBot only needs your dependency lockfile. It reads package names and versions—nothing else. It never accesses your source code, Git repositories, or PyPI account. This makes it safe for agencies working with clients who have strict access policies.
Non. OptiBot n'a besoin que de votre lockfile de dépendances. Il lit les noms de packages et les versions—rien d'autre. Il n'accède jamais à votre code source, vos dépôts Git ou votre compte PyPI. C'est donc sûr pour les agences travaillant avec des clients ayant des politiques d'accès strictes.
Can I monitor Python and Node.js projects together?
Puis-je surveiller des projets Python et Node.js ensemble ?
Yes. OptiBot supports requirements.txt, poetry.lock, and Pipfile.lock (Python), package-lock.json (Node.js/npm), and composer.lock (PHP). Monitor your entire stack from a single dashboard. See our pages on npm vulnerabilities and WordPress CVE monitoring.
Oui. OptiBot supporte requirements.txt, poetry.lock et Pipfile.lock (Python), package-lock.json (Node.js/npm) et composer.lock (PHP). Surveillez toute votre stack depuis un seul tableau de bord. Consultez nos pages sur les vulnérabilités npm et le monitoring CVE WordPress.
Is OptiBot free for Python projects?
OptiBot est-il gratuit pour les projets Python ?
OptiBot offers a free plan with up to 3 projects and manual scanning—no credit card required. For teams needing daily automated monitoring, email alerts, and PDF reports, the Pro plan is 15€/month (20 projects) and the Agency plan is 35€/month (unlimited projects). Sign up free to get started.
OptiBot propose un plan gratuit avec jusqu'à 3 projets et scan manuel—sans carte bancaire. Pour les équipes nécessitant un monitoring automatisé quotidien, des alertes email et des rapports PDF, le plan Pro est à 15€/mois (20 projets) et le plan Agency à 35€/mois (projets illimités). Inscrivez-vous gratuitement pour commencer.
Start scanning your Python dependencies for free
Scannez vos dépendances Python gratuitement
Upload your requirements.txt, poetry.lock, or Pipfile.lock and get a full vulnerability report in seconds. No credit card, no code access required.
Uploadez votre requirements.txt, poetry.lock ou Pipfile.lock et obtenez un rapport de vulnérabilités complet en quelques secondes. Pas de carte bancaire, pas d'accès au code nécessaire.