Bankprojekt Beschreibung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Virtuelle Bank mit PHP & MariaDB == === Ziel des Projekts === Das Projekt dient als praxisnahes Beispiel, um grundlegende Konzepte von '''PHP und MariaDB''…“)
 
(kein Unterschied)

Aktuelle Version vom 17. Februar 2025, 19:07 Uhr

Virtuelle Bank mit PHP & MariaDB

Ziel des Projekts

Das Projekt dient als praxisnahes Beispiel, um grundlegende Konzepte von PHP und MariaDB zu vermitteln. Es soll eine einfache Bank-Simulation entstehen, bei der Benutzer Konten verwalten, Überweisungen tätigen und Transaktionen nachvollziehen können. Zusätzlich gibt es einen Bankdirektor, der als Administrator fungiert und Einsicht in alle Konten und Transaktionen hat.

Das Projekt soll folgende Lerninhalte vermitteln:

  • Datenbankdesign und SQL
  • Benutzerverwaltung mit PHP und Hashing von Passwörtern
  • Sitzungsverwaltung (Sessions) zur Authentifizierung
  • CRUD-Operationen (Create, Read, Update, Delete) mit PHP
  • Transaktionsmanagement in SQL (z. B. für Überweisungen)
  • Sicherheitsaspekte wie SQL-Injection-Vermeidung und Berechtigungen

Funktionsumfang

Die Bank-Simulation umfasst folgende Funktionen:

  • Benutzerregistrierung und Login mit gesichertem Passwort (bcrypt)
  • Jeder Benutzer hat ein Konto mit einem Startguthaben von 10.000 Talern
  • Benutzer können sich untereinander Geld überweisen, jedoch mit einem Limit pro Überweisung
  • Der Kontostand ist nur für den jeweiligen Benutzer sichtbar
  • Der Bankdirektor kann alle Konten und Transaktionen einsehen
  • Transaktionshistorie zur Nachverfolgung von Überweisungen

Software-Basis

Das Projekt wird auf einem Debian-System eingerichtet mit folgenden Komponenten:

  • Apache2 als Webserver
  • PHP für die Backend-Logik
  • MariaDB als relationale Datenbank
  • php-mysql als Schnittstelle zwischen PHP und MariaDB

Sicherheit

Zur Absicherung des Systems werden folgende Maßnahmen ergriffen:

  • Passwort-Hashing mit bcrypt
  • SQL-Injections verhindern durch Prepared Statements
  • Session-Handling für Authentifizierung und Schutz gegen Hijacking
  • Transaktionen in SQL zur Vermeidung inkonsistenter Buchungen