ochrona CSRF w FastAPI

ochrona CSRF w FastAPI
BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 184
0

Szukając ochrony przed CSRF w FastAPI natknąłem się jedynie na:

https://pypi.org/project/fastapi-csrf-protect/

Ewentualnie rzeczy dla Starlette:

https://github.com/simonw/asgi-csrf
https://github.com/frankie567/starlette-csrf

Każdy z tych projektów wydaje się raczej mało popularny (około 100gwiazdek na github).

Czy naprawdę jest tak ciężko z gotowymi rozwiązaniami dla FastAPI?

Używał ktoś jakiejś z tych bibliotek, albo ma do polecenia coś innego? (fastapi-csrf-protect po kodzie jak sprawdziłem to tak nie budzi zaufania za bardzo, wygląa jakby nie-natywny programista pythona to pisał).

Myślałem nawet o zaimplemenotwaniu tokena anty-CSRF samemu, ale mam pewne wątpliwości, w związku z zasadą, że jeśli chodzi o implemenotowanie kwestii bezpieczeństwa to czasem lepiej się zdać na sprawdzone rozwiązania 3rd-party gdzie ludzie faktycznie przysiedli nad nimi trochę i mieli czas żeby zastanowić się nad wszystkime edge-case-ami.

Trochę zaskakujące też, że tak mało rozwiązań jest dla tak popularnej biblioteki, 90k gwiazdek, a rozwiązania anty-CSRF gwiazdek 900x mniej:P Coś przeoczyłem? (podobnie miałem z próbą znalezienia dobrego limitera)

veneficus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 412
1

Ale czekaj, czekaj. FAST API jak głównie służy do robienia API, w obecnej sytuacji używasz zazwyczaj JWT do autoryzacji wysyłany potem w nagłówku, więc nie masz potrzeby implementacji CSRF, ma to zaimplmenetować frontend. Praktycznie nigdy nie widziałem, nie spotkałem się żeby ktoś w fast api używał ciastek.

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
1

jeśli token autoryzujący nie jest automatycznie dodawany do każdego requesta (tak jak ciasteczka) to sam token autoryzujący już jest jednocześnie zabezpieczeniem CSRF

DarekRepos
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
0

Jest jeszcze FastAPI + AuthX, AuthX ma wbudowane wsparcie dla CSRF i rate limiter, ale tam jest "wszystko w jednym", więc niem czy akurat to tu by pasowalo.
https://github.com/yezz123/authx
https://authx.yezz.me/extra/templates/?h=csrf#csrf-protection-in-forms

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.