Als Software die es sicher zu programmieren gilt, soll eine simple Onlinebanking Software namens "BugCoin" umgesetzt werden.
- Nutzerrollen: Benutzer, Premiumbenutzer, Administrator ✔
- Kontostand einsehen ✔
- Umsätze einsehen ✔
- Überweisungen tätigen ✔
- Registrierung durch Nutzer selbst ✔
- Geschenkkarte zum Konto aufladen ✔
Account deaktivieren
- Account aktivieren/deaktivieren ✔
- Account upgrade/downgrade für Premiumbenutzer ✔
- Alle Accounts anzeigen ✔
- Geschenkkarten Codes erzeugen ✔
- HTTPS, kein HTTP ✔
- Benutzername + Password zur Authentifizierung ✔
- Two Factor Authentication ✔
CaptchaSignieren von Überweisungen (TAN, Privatekey, ...)- Logout nach Inaktivität ✔
- Freischaltung neuer Nutzer durch Admin, nach PostIdent Verfahren ✔
- Logging von Benutzer/Admin aktivitäten bezüglich SQL-Statements (heroku logging) ✔
Sperren nach mehrmaliger fehlerhafter Passwort EingabeEmailverifizierung
- Java -> SpringBoot (Spring)
- Maven
- H2 database (development), PostgreSQL (deployment)
- Design patterns: MVC + Table Data Gateway
Eine Mockup Implementierung in HTML und CSS der Weboberfläche befindet sich im Ornder html/.
https://travis-ci.com/shreaker/Secure_Software_Demo
Unter https://bugcoin.herokuapp.com/ steht eine aktuelle Version der Webapplikation zur verfügung. Achtung: Bis dato wird die Applikation im development mode betrieben, das bedeutet die Datenbank wird spätestens nach 24h zurückgesetzt. Push auf heroku branch notwendig um zu depolyen: Einmalig Heroku Command Line installieren und Branch hinzufügen heroku git:remote -a bugcoin. Push: make im Project-Root-Verzeichnis ausführen.