
Temukan otentikasi (authn) dan otorisasi (authz) bug keamanan dalam rute aplikasi web:
Rute dari koel Streaming Server
Aplikasi Web HTTP Route Authn dan Authz Bugs adalah beberapa masalah keamanan paling umum yang ditemukan saat ini. Sumber daya standar industri ini menyoroti tingkat keparahan masalah ini:
Kerangka kerja web yang didukung (ID route-detect dalam tanda kurung):
django , django-rest-framework ), Flask ( flask ), Sanic ( sanic ), FASTAPI ( fastapi )laravel ), Symfony ( symfony ), CakePhp ( cakephp )rails ), Grape ( grape )jax-rs ), Spring ( spring )gorilla ), Gin ( gin ), Chi ( chi )express ), React ( react ), Angular ( angular )* Dukungan rel terbatas. Silakan lihat masalah ini untuk informasi lebih lanjut.
Gunakan pip untuk memasang route-detect :
$ python -m pip install --upgrade route-detect
Anda dapat memeriksa bahwa route-detect diinstal dengan benar dengan perintah berikut:
$ 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 menyediakan routes CLI Command dan menggunakan semgrep untuk mencari rute.
Gunakan sub -perintah which untuk menunjuk semgrep pada aturan aplikasi web yang benar:
$ semgrep --config $(routes which django) path/to/django/code
Gunakan sub -perintah viz untuk memvisualisasikan informasi rute di browser Anda:
$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json
Jika Anda tidak yakin kerangka kerja mana yang harus dicari, Anda dapat menggunakan ID khusus all untuk memeriksa semuanya:
$ semgrep --json --config $(routes which all) --output routes.json path/to/code
Jika Anda memiliki logika AUTHN atau AUTHZ khusus, Anda dapat menyalin aturan route-detect :
$ cp $(routes which django) my-django.yml
Kemudian Anda dapat memodifikasi aturan yang diperlukan dan menjalankannya seperti di atas:
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json
route-detect menggunakan poetry untuk manajemen ketergantungan dan konfigurasi.
Sebelum melanjutkan, instal dependensi proyek dengan perintah berikut:
$ poetry install --with dev
Lint All Project Files dengan perintah berikut:
$ poetry run pre-commit run --all-files
Jalankan tes Python dengan perintah berikut:
$ poetry run pytest --cov
Jalankan tes aturan semgrep dengan perintah berikut:
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/