Client und Server, TCP und TLS (3)

(2 Kommentare.)

(Fortsetzung von hier.)

Einen eigenen Server programmieren

Was nicht gut geht

Ein echter eigener Server im Computerraum

Einen echten eigenen Server, der im Computerraum läuft, könnte man in Java vielleicht programmieren. Aber wahrscheinlich ist das doch zu schwer, außerdem blockieren die Sicherheitseinstellungen im Computerraum ohnehin die Verbindungen zwischen den Rechnern.

Ein echter eigener Server im Internet

Das ist sehr fehleranfällig und nicht überall möglich. Also: leider nein.

Ein eigener Webserver im Internet

Niemand schreibt einen eigenen Webserver, aus gutem Grund.

Was geht: Eine Webseite, die Anfragen annimmt und auswertet

Man schreibt eine Textseite, die PHP-Code enthält.
An diese Seite kann man GET-Anfragen stellen und erhält dann je nach den Werten für übergebene Parameter unterschiedliche Antworten

  1. Wie soll die Seite heißen? Es muss eine Textseite sein (kein Worddokument!), ohne Umlaute oder Sonderzeichen, alles klein geschrieben, mit .php am Ende.
  2. Welchen Parameter soll es geben? Fang mit 1 Parameter an, später kannst du weitere hinzufügen.
  3. Welche sinnvollen Werte für den Parameter soll es geben? Fang mit 2 Beispielen an, später kannst du weitere hinzufügen.
  4. Wie soll die Webseite reagieren, wenn ein unbekannter Wert für einen korrekte Parameter übergeben wird?
  5. Wie soll die Webseite reagieren, wenn der Parameter fehlt?
<?php
$input = $_REQUEST['autor'] ?? null;

if ($input==null) {
    echo "Der Parameter fehlt.";
}
else if ($input=="goethe") {
    echo "Der Text eines Gedichts.";
}
else if ($input=="droste") {
    echo "Der Text eines anderen Gedichts
}
else {
    echo "Von diesem Autor oder dieser Autorin gibt es kein Gedicht.";
}

Wenn du 2 Parameter namens groesse und art hast, beginne:

<?php
$input1 = $_REQUEST['groesse'] ?? null;
$input2 = $_REQUEST['art'] ?? null;

(Die Zeilen bedeuten: Wenn es einen Wert für den Parameter groesse gibt, dann speichere ihn in der Variablen $input1, sonst speichere dort den Wert null.)

Die Variablenbezeichner input, input1, input2 kannst du im Rahmen der geltenden Regeln beliebig wählen.

Aufgabe

  • Beantworte schriftlich die Fragen 1 bis 5 oben.
  • Erstelle eine eigene PHP-Datei für unseren Webserver.
  • Gib mir die PHP-Datei; ich lade sie dann auf den Webserve
  • Teste die PHP-Datei im Browser (oder Client).

Fußnote

Auf XSS (Cross-Site-Scripting) hinweisen: Der übergebene Parameterwert kann Schadcode enthalten, etwa aus Javascript bestehen. Wenn der dann einfach mit echo ausgegeben wird, hat man ein Problem. Deswegen muss man eigentlich noch die Werte vor dem Verwenden säubern und verdächtige Zeichen entfernen,


Beitrag veröffentlicht am

in

Kommentare: 2

Kommentare

2 Kommentare zu „Client und Server, TCP und TLS (3)“

  1. Aginor

    Sehe gerade dass ich zu dieser Reihe noch gar nicht kommentiert habe, das möchte ich hiermit gerne nachholen:

    Gefällt mir gut!
    Die meisten Leute machen sich vermutlich keine großen Gedanken was zwischen der Adresszeile des Browsers und dem erhalten des Inhalts wirklich passiert (und was von dem was aussieht als passiere es auf dem eigenen Rechner irgendwo anders passiert), und gerade wenn dieses Verständnis fehlt, fehlt dann auch das Verständnis für Probleme des Datenschutzes und der Datensicherheit.

    Natürlich hat das ganze Thema diverse Ebenen (nicht zuletzt mehr OSI-Layer und deren Protokolle) die dann die Komplexität über das Maß hinaus erhöhen welches ich noch der Allgemeinbildung zuordnen würde, aber ich finde diese Blogartikel einen guten Einstieg.

    Was ich auch spannend fände: Haben Sie schonmal mit Wireshark gearbeitet? Da kann man diese Dinge recht schön sehen (und dann ggf. auch gleich erschrecken angesichts der Vielzahl des Traffics den man auf dem eigenen PC sehen kann, mit unbekanntem Inhalt an unbekannte Adressen. Aber das ist ein anderes Thema).

    Gruß
    Aginor

  2. Danke!
    Wireshark habe ich schon lange und immer wieder installiert, aber nie wirklich damit gearbeitet. Ich lasse es jetzt gerade wieder einmal laufen, nur zum Schauen. Das zeigt wirklich spannende Sachen. In Schulen ist es nicht installiert oder lässt es sich nicht installieren; ich hatte noch nie Erfolg damit, habe es aber auch lange nicht mehr ausprobiert. Und für den Unterricht müsste man das herunterbrechen. Aber vielleicht geht das etwas.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert