
Sicherheitsfehler der Authentifizierung (Authentifizierung) und Autorisierung (Authz) in Webanwendungsrouten finden:
Routen vom koel Streaming Server
Webanwendung HTTP -Routen -Authn- und Authz -Fehler sind einige der häufigsten Sicherheitsprobleme. Diese Branchenstandard -Ressourcen unterstreichen die Schwere des Problems:
Unterstützte Web-Frameworks ( route-detect IDs in Klammern):
django , django-rest-framework ), Flask ( flask ), Sanic ( sanic ), Fastapi ( fastapi )laravel ), Symfony ( symfony ), CakePhp ( cakephp )rails ), Traube ( grape )jax-rs ), Feder ( spring )gorilla ), Gin ( gin ), Chi ( chi )express ), React ( react ), Winkel ( angular )* Die Rails -Unterstützung ist begrenzt. Weitere Informationen finden Sie in diesem Problem.
Verwenden Sie pip , um route-detect zu installieren:
$ python -m pip install --upgrade route-detect
Sie können überprüfen, ob die route-detect korrekt mit dem folgenden Befehl installiert ist:
$ 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 stellt den Befehl routes CLI zur Verfügung und sucht semgrep um nach Routen zu suchen.
Verwenden Sie das which , um semgrep auf die richtigen Webanwendungsregeln zu zeigen:
$ semgrep --config $(routes which django) path/to/django/code
Verwenden Sie den viz -Unterbefehl, um Routeninformationen in Ihrem Browser zu visualisieren:
$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json
Wenn Sie sich nicht sicher sind, nach welchem Framework Sie suchen sollten, können Sie die spezielle all -ID verwenden, um alles zu überprüfen:
$ semgrep --json --config $(routes which all) --output routes.json path/to/code
Wenn Sie eine benutzerdefinierte Authn- oder Authz-Logik haben, können Sie die Regeln von route-detect kopieren:
$ cp $(routes which django) my-django.yml
Dann können Sie die Regel nach Bedarf ändern und sie wie oben ausführen:
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json
route-detect verwendet poetry für Abhängigkeit und Konfigurationsverwaltung.
Installieren Sie vor dem Fortfahren die Projektabhängigkeiten mit dem folgenden Befehl:
$ poetry install --with dev
FININT Alle Projektdateien mit dem folgenden Befehl:
$ poetry run pre-commit run --all-files
Führen Sie Python -Tests mit dem folgenden Befehl aus:
$ poetry run pytest --cov
Führen Sie SEMGREP -Regeltests mit dem folgenden Befehl aus:
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/