Client und Server, TCP und TLS (3)

(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: 0

Kommentare

Schreibe einen Kommentar

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