
ابحث عن مصادقة (AUTHN) والترخيص (AUTHZ) أخطاء الأمان في طرق تطبيق الويب:
طرق من خادم دفق koel
تطبيق الويب HTTP Route Authn و Authz Bugs هما من أكثر مشكلات الأمان شيوعًا الموجودة اليوم. هذه الموارد المعيارية للصناعة تسلط الضوء على شدة القضية:
أطر الويب المدعومة (معرفات route-detect بين قوسين):
django ، django-rest-framework ) ، Flask ( flask ) ، Sanic ( sanic ) ، fastapi ( fastapi )laravel ) ، Symfony ( symfony ) ، CakePhP ( cakephp )rails ) ، العنب ( grape )jax-rs ) ، الربيع ( spring )gorilla ) ، Gin ( gin ) ، Chi ( chi )express ) ، React ( react ) ، Angular ( angular )* دعم القضبان محدود. يرجى الاطلاع على هذه المشكلة لمزيد من المعلومات.
استخدم pip لتثبيت route-detect :
$ python -m pip install --upgrade route-detect
يمكنك التحقق من أن route-detect يتم تثبيته بشكل صحيح مع الأمر التالي:
$ echo 'print(1 == 1)' | semgrep --config $(routes which test-route-detect) -
Scanning 1 file.
Findings:
/tmp/stdin
routes.rules.test-route-detect
Found '1 == 1', your route-detect installation is working correctly
1┆ print(1 == 1)
Ran 1 rule on 1 file: 1 finding.
يوفر route-detect أمر CLI routes ويستخدم semgrep للبحث عن الطرق.
استخدم اللوم which لتوجيه semgrep في قواعد تطبيق الويب الصحيحة:
$ semgrep --config $(routes which django) path/to/django/code
استخدم المفوض الفرعي viz لتصور معلومات المسار في متصفحك:
$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json
إذا لم تكن متأكدًا من إطار العمل الذي يجب البحث عنه ، فيمكنك استخدام المعرف all للتحقق من كل شيء:
$ semgrep --json --config $(routes which all) --output routes.json path/to/code
إذا كان لديك منطق Authn أو Authz مخصص ، فيمكنك نسخ قواعد route-detect :
$ cp $(routes which django) my-django.yml
ثم يمكنك تعديل القاعدة حسب الضرورة وتشغيلها كما أعلاه:
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json
يستخدم route-detect poetry لإدارة التبعية والتكوين.
قبل المتابعة ، قم بتثبيت تبعيات المشروع مع الأمر التالي:
$ poetry install --with dev
الوبر جميع ملفات المشروع مع الأمر التالي:
$ poetry run pre-commit run --all-files
قم بتشغيل اختبارات Python مع الأمر التالي:
$ poetry run pytest --cov
قم بتشغيل اختبارات قاعدة SEMGREP مع الأمر التالي:
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/