Fix: Podatność XSS w formularzach #75
Open
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.
Opis znalezionej podatności
W formularzach na podstronach


/booksoraz/customersznalazłem podatność XSS umożliwiającą użytkownikowi wstrzyknięcie złośliwego kodu za pomocą pól formularzy dodających książki oraz klientów i zapisanie go w bazie danych aplikacji, powodując jego wykonanie przy każdym załadowaniu strony:Pola w formularzach podatne na XSS to:
Na podstronie
/books:Na podstronie
/customers:Kroki reprodukcji
/books.<script>alert("xss")</script>.Efekt:
Na ekranie w momencie ładowania się strony pojawi się komunikat z przeglądarki o treści "xss".
Zaimplementowana poprawka
Zaimplementowana poprawka polega na wyczyszczeniu wprowadzonych przez użytkownika danych w taki sposób, aby nie zawierały one znaków interpretowanych jako specjalne w języku HTML, dzięki czemu wprowadzone dane mogą zostać bezpiecznie zapisane do bazy danych a potem wyświetlone. W tym celu została użyta funkcja
escape()z pakietumarkupsafe:Testy
W katalogu
testszostały dodane testy jednostkowe sprawdzające poprawność działania dodanej poprawki.Autor: Bartłomiej Pełka