Końcowy projekt na Ochronę Danych w Systemach Informatycznych.
Przygotowanie bezpiecznej aplikacji webowej. Aplikacja będzie pozwalała na wymianę i upublicznianie sformatowanych notatek.
Do działania odzyskiwania hasła przez mail trzeba ustawić zmienne środowiskowe GMAIL_LOGIN
i GMAIL_PASSWORD
w pliku docker.env.
By uruchomić projekt wystarczy wykonać docker-compose up
w głównym katalogu. Projekt będzie widoczny pod adresem https://localhost.
Do uruchomienia projektu w ten sposób wymagany jest Docker.
Napisz aplikację WWW realizującą uwierzytelnianie w oparciu o tajne hasło. Zwróć uwagę na:
- ✅ (niezbędne) restrykcyjna weryfikacje danych pochodzących z formularza login-hasło,
- ✅ (niezbędne) przechowywanie hasła chronione funkcją hash i solą,
- ✅ (niezbędne) możliwość umieszczenia na serwerze notatek dostępnych publicznie lub dla określonych - użytkowników,
- ✅ (niezbędne) zabezpieczenie transmisji poprzez wykorzystanie protokołu https,
- ✅ (niezbędne) możliwość zmiany hasła,
- ✅ dodatkowa kontrola spójności sesji (przeciw atakom XSRF),
- ✅ wielokrotne wykorzystanie funkcji hash, żeby wydłużyć ataki brute-force na hash (wolna funkcja hash),
- ✅ weryfikacja liczby nieudanych prób logowania,
- ✅ dodanie opóźnienia przy weryfikacji hasła w celu wydłużenia ataków zdalnych,
- ✅ sprawdzanie jakości hasła (jego entropii),
- ✅ możliwość odzyskania dostępu w przypadku utraty hasła,
- ✅ informowanie użytkownika o nowych podłączeniach do jego konta.