Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pip-audit — يدقق في بيئات Python وملفات المتطلبات وأشجار التبعيات بحثًا عن ثغرات أمنية معروفة، ويمكنه إصلاحها تلقائيًا | Kitploit
أدوات/GitHubGitHub/pypa/pip-audit
ماسحات الثغرات الأمنيةDevSecOpsكشف الأسرارأمن سلسلة التوريد
GitHubpypa/pip-audit

pip-audit

يدقق في بيئات Python وملفات المتطلبات وأشجار التبعيات بحثًا عن ثغرات أمنية معروفة، ويمكنه إصلاحها تلقائيًا

عرض المستودع
1.3k1198منذ 6 أيامتمت المراجعة من قبل Kitploit
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

pip-audit

CI PyPI version Packaging status OpenSSF Scorecard License

pip-audit هي أداة لفحص بيئات بايثون للعثور على الحزم التي تحتوي على ثغرات أمنية معروفة. تستخدم قاعدة بيانات نصائح حزم بايثون (Python Packaging Advisory Database) عبر واجهة PyPI JSON API كمصدر لتقارير الثغرات.

يتم صيانة هذا المشروع جزئياً بواسطة Trail of Bits بدعم من Google. هذا ليس منتجاً رسمياً من Google أو Trail of Bits.

فهرس

  • الميزات
  • التثبيت
    • الحزم الخارجية
    • إجراءات GitHub
    • دعم pre-commit
  • الاستخدام
    • متغيرات البيئة
    • رموز الخروج
    • التشغيل التجريبي
  • أمثلة
  • استكشاف الأخطاء وإصلاحها
  • نصائح وحيل
  • نموذج الأمان
  • الترخيص
  • المساهمة
  • مدونة قواعد السلوك
  • الميزات

    • دعم لفحص البيئات المحلية وملفات الأنماط (requirements-style)
    • دعم لخدمات ثغرات متعددة (PyPI, OSV)
    • دعم لإصدار قوائم مكونات البرمجيات (SBOMs) بصيغة CycloneDX XML أو JSON
    • دعم للإصلاح التلقائي للاعتماديات الضعيفة (--fix)
    • تنسيقات إخراج قابلة للقراءة بواسطة الإنسان والآلة (جدولي، Markdown، JSON)
    • إعادة استخدام مخابئ pip المحلية الموجودة بسلاسة

    التثبيت

    pip-audit يتطلب Python 3.10 أو أحدث، ويمكن تثبيته مباشرة عبر pip:```bash python -m pip install pip-audit

    root@kitploit:~
    ### حزم الطرف الثالث
    
    هناك عدة حزم من **جهات خارجية** لـ `pip-audit`. المصفوفات والشارات أدناه تسرد بعضًا منها:
    
    [![Packaging status](https://repology.org/badge/vertical-allrepos/python:pip-audit.svg)](https://repology.org/project/python:pip-audit/versions)
    [![Packaging status](https://repology.org/badge/vertical-allrepos/pip-audit.svg)](https://repology.org/project/pip-audit/versions)
    [![Conda - Platform](https://img.shields.io/conda/pn/conda-forge/pip-audit?logo=anaconda&style=flat)][#conda-forge-package]
    [![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/pip-audit?logo=anaconda&style=flat&color=orange)][#conda-forge-package]
    
    [#conda-forge-package]: https://anaconda.org/conda-forge/pip-audit
    
    على وجه الخصوص، يمكن تثبيت `pip-audit` عبر `conda`:```bash
    conda install -c conda-forge pip-audit
    

    الحزم من طرف ثالث غير مدعومة مباشرة بواسطة هذا المشروع. يرجى الرجوع إلى وثائق مدير الحزم الخاص بك للحصول على إرشادات تثبيت أكثر تفصيلاً.

    GitHub Actions

    pip-audit لديه إجراء رسمي على GitHub Actions!

    يمكنك تثبيته من GitHub Marketplace، أو إضافته إلى CI الخاص بك يدويًا:```yaml jobs: pip-audit: steps: - uses: pypa/[email protected] with: inputs: requirements.txt

    root@kitploit:~
    انظر
    [وثائق الإجراء](https://github.com/pypa/gh-action-pip-audit/blob/main/README.md)
    لمزيد من التفاصيل وأمثلة الاستخدام.
    
    ### دعم `pre-commit`
    
    `pip-audit` لديه دعم [`pre-commit`](https://pre-commit.com/).
    
    على سبيل المثال، استخدام `pip-audit` عبر `pre-commit` لتدقيق ملف المتطلبات:```yaml
      - repo: https://github.com/pypa/pip-audit
        rev: v2.10.1
        hooks:
          -   id: pip-audit
              args: ["-r", "requirements.txt"]
    
    ci:
      # Leave pip-audit to only run locally and not in CI
      # pre-commit.ci does not allow network calls
      skip: [pip-audit]
    

    يمكن تمرير أي وسائط pip-audit الموثقة أدناه.

    الاستخدام

    يمكنك تشغيل pip-audit كبرنامج مستقل، أو عبر python -m:```bash pip-audit --help python -m pip_audit --help

    root@kitploit:~
    <!-- @begin-pip-audit-help@ -->```
    usage: pip-audit [-h] [-V] [-l] [-r REQUIREMENT] [--locked] [-f FORMAT]
                     [-s SERVICE] [--osv-url OSV_URL] [-d] [-S]
                     [--desc [{on,off,auto}]] [--aliases [{on,off,auto}]]
                     [--cache-dir CACHE_DIR] [--progress-spinner {on,off}]
                     [--timeout TIMEOUT] [--path PATH] [-v] [--fix]
                     [--require-hashes] [--index-url INDEX_URL]
                     [--extra-index-url URL] [--skip-editable] [--no-deps]
                     [-o FILE] [--ignore-vuln ID] [--disable-pip]
                     [project_path]
    
    audit the Python environment for dependencies with known vulnerabilities
    
    positional arguments:
      project_path          audit a local Python project at the given path
                            (default: None)
    
    options:
      -h, --help            show this help message and exit
      -V, --version         show program's version number and exit
      -l, --local           show only results for dependencies in the local
                            environment (default: False)
      -r REQUIREMENT, --requirement REQUIREMENT
                            audit the given requirements file; this option can be
                            used multiple times (default: None)
      --locked              audit lock files from the local Python project. This
                            flag only applies to auditing from project paths
                            (default: False)
      -f FORMAT, --format FORMAT
                            the format to emit audit results in (choices: columns,
                            json, cyclonedx-json, cyclonedx-xml, markdown)
                            (default: columns)
      -s SERVICE, --vulnerability-service SERVICE
                            the vulnerability service to audit dependencies
                            against (choices: osv, pypi, esms) (default: pypi)
      --osv-url OSV_URL     URL to use for the OSV API instead of the default
                            (default: https://api.osv.dev/v1/query)
      -d, --dry-run         without `--fix`: collect all dependencies but do not
                            perform the auditing step; with `--fix`: perform the
                            auditing step but do not perform any fixes (default:
                            False)
      -S, --strict          fail the entire audit if dependency collection fails
                            on any dependency (default: False)
      --desc [{on,off,auto}]
                            include a description for each vulnerability; `auto`
                            defaults to `on` for the `json` format. This flag has
                            no effect on the `cyclonedx-json` or `cyclonedx-xml`
                            formats. (default: auto)
      --aliases [{on,off,auto}]
                            includes alias IDs for each vulnerability; `auto`
                            defaults to `on` for the `json` format. This flag has
                            no effect on the `cyclonedx-json` or `cyclonedx-xml`
                            formats. (default: auto)
      --cache-dir CACHE_DIR
                            the directory to use as an HTTP cache for PyPI; uses
                            the `pip` HTTP cache by default (default: None)
      --progress-spinner {on,off}
                            display a progress spinner (default: on)
      --timeout TIMEOUT     set the socket timeout (default: 15)
      --path PATH           restrict to the specified installation path for
                            auditing packages; this option can be used multiple
                            times (default: [])
      -v, --verbose         run with additional debug logging; supply multiple
                            times to increase verbosity (default: 0)
      --fix                 automatically upgrade dependencies with known
                            vulnerabilities (default: False)
      --require-hashes      require a hash to check each requirement against, for
                            repeatable audits; this option is implied when any
                            package in a requirements file has a `--hash` option.
                            (default: False)
      --index-url INDEX_URL
                            base URL of the Python Package Index; this should
                            point to a repository compliant with PEP 503 (the
                            simple repository API); this will be resolved by pip
                            if not specified (default: None)
      --extra-index-url URL
                            extra URLs of package indexes to use in addition to
                            `--index-url`; should follow the same rules as
                            `--index-url` (default: [])
      --skip-editable       don't audit packages that are marked as editable
                            (default: False)
      --no-deps             don't perform any dependency resolution; requires all
                            requirements are pinned to an exact version (default:
                            False)
      -o FILE, --output FILE
                            output results to the given file (default: stdout)
      --ignore-vuln ID      ignore a specific vulnerability by its vulnerability
                            ID; this option can be used multiple times (default:
                            [])
      --disable-pip         don't use `pip` for dependency resolution; this can
                            only be used with hashed requirements files or if the
                            `--no-deps` flag has been provided (default: False)
    

    متغيرات البيئة

    يسمح pip-audit للمستخدمين بتكوين بعض العلامات عبر متغيرات البيئة بدلاً من ذلك:

    العلامةالمعادل في البيئةمثال
    --formatPIP_AUDIT_FORMATPIP_AUDIT_FORMAT=markdown
    --vulnerability-servicePIP_AUDIT_VULNERABILITY_SERVICEPIP_AUDIT_VULNERABILITY_SERVICE=osv
    --descPIP_AUDIT_DESCPIP_AUDIT_DESC=off
    --progress-spinnerPIP_AUDIT_PROGRESS_SPINNERPIP_AUDIT_PROGRESS_SPINNER=off
    --outputPIP_AUDIT_OUTPUTPIP_AUDIT_OUTPUT=/tmp/example

    رموز الخروج

    عند الانتهاء، سيخرج pip-audit برمز يشير إلى حالته.

    الرموز الحالية هي:

    • 0: لم يتم اكتشاف أي ثغرات أمنية معروفة.
    • 1: تم العثور على ثغرة أمنية معروفة واحدة أو أكثر.

    لا يمكن كبت رمز خروج pip-audit. انظر كبت رموز الخروج من pip-audit للحصول على البدائل المدعومة.

    التشغيلات التجريبية

    يدعم pip-audit العلامة --dry-run، والتي يمكن استخدامها للتحكم في ما إذا كانت خطوة التدقيق (أو الإصلاح) قد نُفذت بالفعل.

    • بمفردها، يقوم pip-audit --dry-run بتخطي خطوة التدقيق وطباعة عدد التبعيات التي كانت ستُدقق.
    • في وضع الإصلاح، يقوم pip-audit --fix --dry-run بتنفيذ خطوة التدقيق وطباعة سلوك الإصلاح (أي التبعيات التي كانت ستُرقى أو تُتخطى) الذي كان سينفذ.

    أمثلة

    تدقيق التبعيات لبيئة Python الحالية:```console $ pip-audit No known vulnerabilities found

    root@kitploit:~
    تدقيق التبعيات لملف متطلبات معين:```console
    $ pip-audit -r ./requirements.txt
    No known vulnerabilities found
    

    تدقيق التبعيات لملف المتطلبات، باستثناء حزم النظام:```console $ pip-audit -r ./requirements.txt -l No known vulnerabilities found

    root@kitploit:~
    تدقيق التبعيات لمشروع بايثون محلي:```console
    $ pip-audit .
    No known vulnerabilities found
    

    تدقيق ملفات القفل لمشروع بايثون محلي:```console $ pip-audit --locked . No known vulnerabilities found

    root@kitploit:~
    `pip-audit` يبحث في المسار المقدم عن ملفات "مشروع" Python المختلفة.
    في الوقت الحالي، يتم دعم `pyproject.toml` و `pylock.*.toml` فقط.
    
    تدقيق التبعيات عند وجود ثغرات أمنية:```console
    $ pip-audit
    Found 2 known vulnerabilities in 1 package
    Name  Version ID             Fix Versions
    ----  ------- -------------- ------------
    Flask 0.5     PYSEC-2019-179 1.0
    Flask 0.5     PYSEC-2018-66  0.12.3
    

    مراجعة التبعيات بما في ذلك الأسماء المستعارة:```console $ pip-audit --aliases Found 2 known vulnerabilities in 1 package Name Version ID Fix Versions Aliases


    Flask 0.5 PYSEC-2019-179 1.0 CVE-2019-1010083, GHSA-5wv5-4vpf-pj6m Flask 0.5 PYSEC-2018-66 0.12.3 CVE-2018-1000656, GHSA-562c-5r94-xh97

    root@kitploit:~
    تدقيق التبعيات بما في ذلك الأوصاف:```console
    $ pip-audit --desc
    Found 2 known vulnerabilities in 1 package
    Name  Version ID             Fix Versions Description
    ----  ------- -------------- ------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Flask 0.5     PYSEC-2019-179 1.0          The Pallets Project Flask before 1.0 is affected by: unexpected memory usage. The impact is: denial of service. The attack vector is: crafted encoded JSON data. The fixed version is: 1. NOTE: this may overlap CVE-2018-1000656.
    Flask 0.5     PYSEC-2018-66  0.12.3       The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3. NOTE: this may overlap CVE-2019-1010083.
    

    تدقيق التبعيات بصيغة JSON:```console $ pip-audit -f json | python -m json.tool Found 2 known vulnerabilities in 1 package [ { "name": "flask", "version": "0.5", "vulns": [ { "id": "PYSEC-2019-179", "fix_versions": [ "1.0" ], "aliases": [ "CVE-2019-1010083", "GHSA-5wv5-4vpf-pj6m" ], "description": "The Pallets Project Flask before 1.0 is affected by: unexpected memory usage. The impact is: denial of service. The attack vector is: crafted encoded JSON data. The fixed version is: 1. NOTE: this may overlap CVE-2018-1000656." }, { "id": "PYSEC-2018-66", "fix_versions": [ "0.12.3" ], "aliases": [ "CVE-2018-1000656", "GHSA-562c-5r94-xh97" ], "description": "The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3. NOTE: this may overlap CVE-2019-1010083." } ] }, { "name": "jinja2", "version": "3.0.2", "vulns": [] }, { "name": "pip", "version": "21.3.1", "vulns": [] }, { "name": "setuptools", "version": "57.4.0", "vulns": [] }, { "name": "werkzeug", "version": "2.0.2", "vulns": [] }, { "name": "markupsafe", "version": "2.0.1", "vulns": [] } ]

    root@kitploit:~
    تدقيق ومحاولة ترقية التبعيات الضعيفة تلقائيًا:```console
    $ pip-audit --fix
    Found 2 known vulnerabilities in 1 package and fixed 2 vulnerabilities in 1 package
    Name  Version ID             Fix Versions Applied Fix
    ----- ------- -------------- ------------ ----------------------------------------
    flask 0.5     PYSEC-2019-179 1.0          Successfully upgraded flask (0.5 => 1.0)
    flask 0.5     PYSEC-2018-66  0.12.3       Successfully upgraded flask (0.5 => 1.0)
    

    استكشاف الأخطاء وإصلاحها

    هل قمت بحل مشكلة في pip-audit؟ ساعدنا من خلال المساهمة في هذا القسم!

    pip-audit يعرض تقارير ثغرات غير ذات صلة!

    في عالم مثالي، ستكون نسبة الإشارة إلى الضوضاء في خلاصات الثغرات لا نهائية: سيكون كل تقرير ثغرة (1) صحيحًا، و(2) قابلًا للتطبيق على كل استخدام لكل اعتماد.

    لسوء الحظ، لا يُضمن أي من هذين الأمرين: خلاصات الثغرات ليست محصنة ضد التقارير الزائدة أو المزعجة، وليس كل استخدامات اعتماد معين تتوافق مع جميع الفئات المحتملة للثغرات.

    إذا كانت عمليات تشغيل pip-audit لديك تنتج تقارير ثغرات غير قابلة للتنفيذ لتطبيقك أو حالة الاستخدام الخاصة بك، يمكنك استخدام خيار --ignore-vuln ID لتجاهل تقارير ثغرات محددة. يدعم --ignore-vuln الأسماء المستعارة، لذا يمكنك استخدام معرف GHSA-xxx أو CVE-xxx بدلاً من معرف PYSEC-xxx إذا كان التقرير المعني لا يحتوي على معرف PYSEC.

    على سبيل المثال، إليك كيفية تجاهل GHSA-w596-4wvx-j9j6، وهو مصدر شائع لتقارير الثغرات المزعجة والإيجابيات الكاذبة لمستخدمي pytest:```console

    Run the audit as normal, but exclude any reports that match GHSA-w596-4wvx-j9j6

    $ pip-audit --ignore-vuln GHSA-w596-4wvx-j9j6

    root@kitploit:~
    خيار `--ignore-vuln ID` يعمل مع جميع خيارات حل التبعيات والتدقيق الأخرى، مما يعني أنه يجب أن يعمل بشكل صحيح مع المدخلات من نمط المتطلبات، وخلاصات الثغرات البديلة، وما إلى ذلك.
    
    يمكن أيضًا تمريره عدة مرات لتجاهل تقارير متعددة:```console
    # Run the audit as normal, but exclude any reports that match these IDs
    $ pip-audit --ignore-vuln CVE-XXX-YYYY --ignore-vuln CVE-ZZZ-AAAA
    

    pip-audit يستغرق وقتًا أطول مما أتوقع!

    اعتمادًا على كيفية استخدامك له، قد يتعين على pip-audit إجراء تحليل التبعيات الخاص به، والذي قد يستغرق وقتًا تقريبًا مثل ما يستغرقه pip install لمشروع. راجع نموذج الأمان للحصول على شرح.

    لديك خياران لتجنب تحليل التبعيات: تدقيق بيئة مثبتة مسبقًا، أو التأكد من أن تبعياتك قد تم حلها بالكامل بالفعل.

    إذا كنت تعلم أنك قد قمت بالفعل بتكوين بيئة مكافئة للبيئة التي سيقوم pip-audit -r requirements.txt بتدقيقها، يمكنك ببساطة إعادة استخدامها:```console

    Note the absence of any "input" arguments, indicating that the environment is used.

    $ pip-audit

    Optionally filter out non-local packages, for virtual environments:

    $ pip-audit --local

    root@kitploit:~
    بدلاً من ذلك، إذا كان الإدخال الخاص بك مثبتًا بالكامل (وربما موزعًا اختياريًا)، يمكنك إخبار `pip-audit` بتخطي حل التبعيات باستخدام إما `--no-deps` (مثبت بدون تجزئات) أو `--require-hashes` (مثبت بما في ذلك التجزئات).
    
    الأخير مكافئ لوضع التحقق من التجزئة الخاص بـ `pip`
    [hash-checking mode](https://pip.pypa.io/en/stable/cli/pip_install/#hash-checking-mode)
    وهو مفضل، لأنه يوفر سلامة إضافية.```console
    # fails if any dependency is not fully pinned
    $ pip-audit --no-deps -r requirements.txt
    
    # fails if any dependency is not fully pinned *or* is missing hashes
    $ pip-audit --require-hashes -r requirements.txt
    

    pip-audit لا يمكنه المصادقة على فهرس الطرف الثالث الخاص بي!

    فهارس الطرف الثالث الموثقة أو الخاصة

    يدعم pip-audit الخيارين --index-url و --extra-index-url لتكوين فهارس حزم بديلة أو تكميلية، تمامًا مثل pip.

    عندما تكون غير موثقة، يجب أن تعمل هذه الفهارس كما هو متوقع. ومع ذلك، عندما يتطلب فهرس طرف ثالث المصادقة، فإن pip-audit لديه بعض القيود الإضافية بالإضافة إلى pip العادي:

    • المصادقة التفاعلية غير مدعومة. بمعنى آخر: pip-audit لن يطالبك باسم مستخدم/كلمة مرور للفهرس.
    • مصادقة keyring الخاصة بـ pip مدعومة، ولكن بشكل محدود: يستخدم pip-audit مزود subprocess للـ keyring، نظرًا لأن عمليات التدقيق تتم في بيئات افتراضية معزولة. مزود subprocess بدوره يخضع لقيود إضافية (مثل اسم مستخدم مطلوب)؛ توثيق pip يشرح ذلك بالتفصيل.

    بالإضافة إلى ما سبق، تحتوي بعض فهارس الطرف الثالث على أسماء مستخدمين مطلوبة ومبرمجة بشكل صارم. على سبيل المثال، بالنسبة لسجل Google Artifact، اسم المستخدم المبرمج هو oauth2accesstoken. انظر #742 و pip#11971 لمزيد من السياق.

    نصائح وحيل

    التشغيل مقابل مشروع pipenv

    يستخدم pipenv كلاً من ملفي Pipfile و Pipfile.lock لتتبع وتجميد التبعيات بدلاً من ملف requirements.txt. لا يمكن لـ pip-audit معالجة ملفات Pipfile[.lock] مباشرة، ومع ذلك، يمكن تحويلها إلى ملف requirements.txt مدعوم يمكن لـ pip-audit العمل ضده. يحتوي pipenv على أمر مدمج لتحويل التبعيات إلى ملف requirements.txt (اعتبارًا من v2022.4.8):```console $ pipenv run pip-audit -r <(pipenv requirements)

    root@kitploit:~
    ### إخفاء رموز الخروج من `pip-audit`
    
    لا يدعم `pip-audit` عمدًا إخفاء رموز الخروج الخاصة به داخليًا.
    
    يمكن للمستخدمين الذين يحتاجون إلى إخفاء استدعاء `pip-audit` الفاشل استخدام إحدى الصيغ القياسية للقشرة (shell) للقيام بذلك:```bash
    pip-audit || true
    

    أو، للخروج بالكامل:```bash pip-audit || exit 0

    root@kitploit:~
    يمكن أيضًا التقاط رمز الخروج ومعالجته بشكل صريح:```bash
    pip-audit
    exitcode="${?}"
    # do something with ${exitcode}
    

    انظر رموز الخروج للحصول على قائمة بالرموز المحتملة التي تحتاج إلى معالجة.

    الإبلاغ عن الثغرات القابلة للإصلاح فقط

    في سير العمل التطويري، قد ترغب في تجاهل الثغرات التي لم يتم إصلاحها بعد والتحقيق فيها فقط أثناء عملية الإصدار. pip-audit لا يدعم تجاهل الثغرات غير المُصلَحة. ومع ذلك، يمكنك تصدير مخرجاته بتنسيق JSON ومعالجتها خارجيًا. على سبيل المثال، إذا كنت تريد الخروج برمز غير صفري فقط عندما يكون للثغرات المُكتشفة إصدارات إصلاح معروفة، يمكنك معالجة المخرجات باستخدام jq كما يلي:

    $ pip-audit --format json | jq '.dependency_vulnerabilities | .[] | select(.fix_versions != null)'```shell test -z "$(pip-audit -r requirements.txt --format=json 2>/dev/null | jq '.dependencies[].vulns[].fix_versions[]')"

    root@kitploit:~
    مثال بسيط (وغير فعّال) لاستخدام هذه الطريقة سيكون:```shell
    test -z "$(pip-audit -r requirements.txt --format=json 2>/dev/null | jq '.dependencies[].vulns[].fix_versions[]')" || pip-audit -r requirements.txt
    

    والتي تقوم بتشغيل pip-audit كالمعتاد وتخرج برمز غير صفري فقط في حالة وجود إصدارات محددة للثغرات المعروفة.

    نموذج الأمان

    يوجد هذا القسم لوصف الافتراضات الأمنية التي يمكنك و لا يجب عليك اتخاذها عند استخدام pip-audit.

    خلاصة: إذا كنت لن تقوم بتثبيته باستخدام pip install، فلا ينبغي عليك تدقيقه باستخدام pip audit.

    pip-audit هو أداة لتدقيق بيئات بايثون بحثًا عن حزم بها ثغرات معروفة. 'الثغرة المعروفة' هي خلل تم الإبلاغ عنه علنًا في حزمة، إذا لم يتم تصحيحه، قد يسمح لفاعل خبيث بتنفيذ إجراءات غير مقصودة.

    يمكن لـ pip-audit أن يحميك من الثغرات المعروفة عن طريق إخبارك عند وجودها، وكيفية ترقيتها. على سبيل المثال، إذا كان لديك somepackage==1.2.3 في بيئتك، يمكن لـ pip-audit أن يخبرك أنه يجب ترقيته إلى 1.2.4.

    يمكنك افتراض أن pip-audit سيبذل قصارى جهده لحل جميع تبعيات بايثون الخاصة بك بالكامل، و إما أن يدقق كل منها بالكامل أو يذكر صراحة أي منها تخطاه، وكذلك سبب تخطيه.

    pip-audit ليس محللًا ثابتًا للكود. إنه يحلل أشجار التبعيات، وليس الكود، و لا يمكنه ضمان أن عمليات حل التبعيات التعسفية تحدث بشكل ثابت. لفهم سبب ذلك، راجع المقال الممتاز لدستن إنجرام حول حل التبعيات في بايثون.

    وبالتالي: لا يجب عليك افتراض أن pip-audit سيدافع عنك ضد الحزم الخبيثة. على وجه الخصوص، من غير الصحيح اعتبار pip-audit -r INPUT كبديل 'أكثر أمانًا' لـ pip-audit. لجميع الأغراض، pip-audit -r INPUT مكافئ وظيفيًا لـ pip install -r INPUT، مع قدر صغير من العزل غير الأمني لتجنب التعارضات مع أي من بيئاتك المحلية.

    pip-audit هو أولاً وقبل كل شيء أداة تدقيق لحزم بايثون. لا يجب عليك افتراض أن pip-audit سيكتشف أو يشير إلى ثغرات 'عابرة' قد تظهر من خلال حزم بايثون، ولكنها ليست جزءًا من الحزمة نفسها. على سبيل المثال، من غير المرجح أن تشمل مصادر معلومات الثغرات في pip-audit تنبيهًا لمكتبة مشتركة ضعيفة قد تستخدمها حزمة بايثون شائعة، نظرًا لأن نسخة حزمة بايثون ليست مرتبطة بقوة بنسخة المكتبة المشتركة.

    الترخيص

    pip-audit مرخص بموجب رخصة Apache 2.0.

    pip-audit يعيد استخدام ويعدل أمثلة من resolvelib، المرخصة بموجب رخصة ISC.

    المساهمة

    راجع وثائق المساهمة للحصول على التفاصيل.

    مدونة قواعد السلوك

    من المتوقع أن يتبع كل من يتفاعل مع هذا المشروع مدونة قواعد سلوك PSF.

    تنزيل الأداة