Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Zadanie 1
Stworzono i wykonano testy dla modelu Book, dokonano odpowiedniej modyfikacji dockerfile. Znajdują się one w folderze tests/ w wersji pythonowej. Testy wykonują się przy buildzie, bądź gdy już zbuildowano, poprzez komendę:
Wyniki testów
Zadanie 2
Token składa się z kilku segmentów przedzielonych kropką. Rezultat dekodowania:

W headerze zmieniono "HS256" na "none", w payload account z "Bob" na "administrator". Token kończy się kropką, bo signature nie jest potrzebne.
Po wysłaniu powstałego tokena do odpowiedniego endpointu otrzymuję następujący rezultat:
Poprawka podatności
Podatność została zidentyfikowana w pliku
JWT/jwt-signature-apis-challenges/app.jsw linii 34. Problem polegał na tym, że w metodzieJWT.verify()w tablicyalgorithmsznajdował się algorytm'none', co pozwalało na weryfikację tokenów JWT bez podpisu. Poprawka polegała na usunięciu'none'.Efekt poprawki
Po wprowadzeniu poprawki, aplikacja akceptuje tylko tokeny podpisane algorytmem
HS256. Próba użycia tokenu z algorytmem'none'zostanie odrzucona z błędem weryfikacji, co eliminuje możliwość ataku polegającego na modyfikacji tokenu bez podpisu.Po wysłaniu tokena do endpointu po poprawce rezultat jest następujący:

Poprawka zadziałała, token nie został przyjęty.