Dynamische Webseiten mit PHP und MySQL Prinzip: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Dynamische Webseiten mit PHP und MySQL – Prinzip = == Einführung == * Dynamische Webseiten generieren Inhalte zur Laufzeit, abhängig von Benutzereingabe…“) |
|||
| Zeile 1: | Zeile 1: | ||
= Dynamische Webseiten mit PHP und MySQL – Prinzip = | = Dynamische Webseiten mit PHP und MySQL – Prinzip = | ||
| − | == | + | == Grundidee == |
| − | * | + | * Eine dynamische Webseite erzeugt ihren Inhalt zur Laufzeit und nicht aus festen Dateien |
| − | * | + | * Inhalte werden aus einer Datenbank geladen oder durch Benutzereingaben verändert |
| − | * | + | * Die gleiche URL kann unterschiedliche Inhalte liefern |
| − | == | + | == Komponenten == |
| − | * | + | * Browser (Client) |
| − | ** | + | ** Sendet Anfragen an den Server |
| − | ** | + | ** Zeigt die erzeugte Webseite an |
| − | |||
| − | * | + | * Webserver (Apache) mit PHP |
| − | ** | + | ** Verarbeitet die Anfrage |
| − | ** | + | ** Führt Logik aus |
| − | ** | + | ** Kommuniziert mit der Datenbank |
| − | |||
| − | |||
| − | + | * Datenbank (MySQL / MariaDB) | |
| − | * | + | ** Speichert strukturierte Daten |
| − | + | ** Liefert Daten auf Anfrage | |
| − | + | ** Nimmt Änderungen entgegen | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | == Ablauf einer Anfrage == | |
| + | * Benutzer sendet eine Anfrage (z. B. Formular oder URL) | ||
| − | + | * Anfrage wird an den Webserver übergeben | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * PHP verarbeitet die Anfrage | |
| − | * | + | ** Eingaben werden gelesen |
| − | + | ** Entscheidung wird getroffen (lesen / schreiben) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | + | * PHP stellt Anfrage an die Datenbank |
| − | + | ** SELECT → Daten lesen | |
| − | + | ** INSERT → Daten speichern | |
| − | + | ** DELETE → Daten löschen | |
| − | |||
| − | + | * Datenbank liefert Ergebnis zurück | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * PHP erzeugt daraus HTML | |
| − | * PHP | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | + | * HTML wird an den Browser gesendet |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * Browser zeigt die fertige Seite an | |
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | == Ablauf als Kette == |
| − | * | + | * Benutzer → Anfrage → PHP → Datenbank → PHP → HTML → Benutzer |
| − | * PHP | + | |
| − | * | + | == Trennung der Aufgaben == |
| − | * | + | * HTML |
| + | ** Darstellung der Inhalte | ||
| + | ** Formulare und Tabellen | ||
| + | |||
| + | * PHP | ||
| + | ** Logik und Verarbeitung | ||
| + | ** Steuerung des Ablaufs | ||
| + | ** Kommunikation mit der Datenbank | ||
| + | |||
| + | * Datenbank | ||
| + | ** Speicherung der Daten | ||
| + | ** Strukturierung der Informationen | ||
| + | |||
| + | == Dynamik == | ||
| + | * Inhalte werden bei jedem Aufruf neu erzeugt | ||
| + | * Ergebnisse hängen ab von: | ||
| + | ** Benutzereingaben | ||
| + | ** Datenbankinhalt | ||
| + | ** Zustand der Anwendung (z. B. Login) | ||
| + | |||
| + | == Zentrale Problemstellen == | ||
| + | * Eingaben des Benutzers | ||
| + | ** Können manipuliert werden | ||
| + | ** Dürfen nicht direkt übernommen werden | ||
| + | |||
| + | * Datenbankzugriff | ||
| + | ** Unsichere Abfragen führen zu Manipulation (SQL Injection) | ||
| + | |||
| + | * Ausgabe im Browser | ||
| + | ** Ungefilterte Inhalte führen zu Script-Ausführung (XSS) | ||
| + | |||
| + | == Sicherheitsprinzipien == | ||
| + | * Eingaben kontrollieren | ||
| + | ** Keine direkte Übernahme von Benutzerdaten | ||
| + | |||
| + | * Daten sicher speichern | ||
| + | ** Passwörter werden gehasht | ||
| + | |||
| + | * Ausgabe absichern | ||
| + | ** Inhalte werden vor der Anzeige gefiltert | ||
| + | |||
| + | == Bezug zur Umsetzung == | ||
| + | * Level 1 | ||
| + | ** Grundfunktion (lesen / schreiben) | ||
| + | |||
| + | * Level 2 | ||
| + | ** System ist funktional aber unsicher | ||
| + | |||
| + | * Level 3 | ||
| + | ** Absicherung der Anwendung | ||
| + | |||
| + | == Kernaussage == | ||
| + | * Dynamische Webseiten bestehen aus Eingabe, Verarbeitung und Speicherung | ||
| + | * Jede dieser Stellen kann korrekt funktionieren oder zur Schwachstelle werden | ||
Aktuelle Version vom 22. März 2026, 10:16 Uhr
Dynamische Webseiten mit PHP und MySQL – Prinzip
Grundidee
- Eine dynamische Webseite erzeugt ihren Inhalt zur Laufzeit und nicht aus festen Dateien
- Inhalte werden aus einer Datenbank geladen oder durch Benutzereingaben verändert
- Die gleiche URL kann unterschiedliche Inhalte liefern
Komponenten
- Browser (Client)
- Sendet Anfragen an den Server
- Zeigt die erzeugte Webseite an
- Webserver (Apache) mit PHP
- Verarbeitet die Anfrage
- Führt Logik aus
- Kommuniziert mit der Datenbank
- Datenbank (MySQL / MariaDB)
- Speichert strukturierte Daten
- Liefert Daten auf Anfrage
- Nimmt Änderungen entgegen
Ablauf einer Anfrage
- Benutzer sendet eine Anfrage (z. B. Formular oder URL)
- Anfrage wird an den Webserver übergeben
- PHP verarbeitet die Anfrage
- Eingaben werden gelesen
- Entscheidung wird getroffen (lesen / schreiben)
- PHP stellt Anfrage an die Datenbank
- SELECT → Daten lesen
- INSERT → Daten speichern
- DELETE → Daten löschen
- Datenbank liefert Ergebnis zurück
- PHP erzeugt daraus HTML
- HTML wird an den Browser gesendet
- Browser zeigt die fertige Seite an
Ablauf als Kette
- Benutzer → Anfrage → PHP → Datenbank → PHP → HTML → Benutzer
Trennung der Aufgaben
- HTML
- Darstellung der Inhalte
- Formulare und Tabellen
- PHP
- Logik und Verarbeitung
- Steuerung des Ablaufs
- Kommunikation mit der Datenbank
- Datenbank
- Speicherung der Daten
- Strukturierung der Informationen
Dynamik
- Inhalte werden bei jedem Aufruf neu erzeugt
- Ergebnisse hängen ab von:
- Benutzereingaben
- Datenbankinhalt
- Zustand der Anwendung (z. B. Login)
Zentrale Problemstellen
- Eingaben des Benutzers
- Können manipuliert werden
- Dürfen nicht direkt übernommen werden
- Datenbankzugriff
- Unsichere Abfragen führen zu Manipulation (SQL Injection)
- Ausgabe im Browser
- Ungefilterte Inhalte führen zu Script-Ausführung (XSS)
Sicherheitsprinzipien
- Eingaben kontrollieren
- Keine direkte Übernahme von Benutzerdaten
- Daten sicher speichern
- Passwörter werden gehasht
- Ausgabe absichern
- Inhalte werden vor der Anzeige gefiltert
Bezug zur Umsetzung
- Level 1
- Grundfunktion (lesen / schreiben)
- Level 2
- System ist funktional aber unsicher
- Level 3
- Absicherung der Anwendung
Kernaussage
- Dynamische Webseiten bestehen aus Eingabe, Verarbeitung und Speicherung
- Jede dieser Stellen kann korrekt funktionieren oder zur Schwachstelle werden