Kurse:HTTP Code Übungen und Schwachstellen:Hauptseite: Unterschied zwischen den Seiten

Aus ahrensburg.city
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „== Übungen zu HTTP-Protokoll und ASP.NET Core == === Übung 1: HTTP-Antwort beobachten im Browser === # Öffne deine Beispiel-Webseite in Chrome oder Firefox. # Aktiviere die Entwickler-Tools und wechsle zum Netzwerk-Tab (siehe §19.6 in LaunchCode) :contentReference[oaicite:1]{index=1}. # Lade die Seite neu und identifiziere: : * Eine GET‑Anfrage für das HTML-Dokument : * Eine GET‑Anfrage für eine CSS-Datei : * Eine GET‑Anfrage für ein Bild #…“
 
// via Wikitext Extension for VSCode
 
Zeile 1: Zeile 1:
== Übungen zu HTTP-Protokoll und ASP.NET Core ==
==Schwachstellen==
 
===Sprachmodell===
=== Übung 1: HTTP-Antwort beobachten im Browser ===
* [https://airiskdatabase.com AI Risk Database] – Eine Datenbank mit Risiken und Schwachstellen im Bereich Künstliche Intelligenz.
# Öffne deine Beispiel-Webseite in Chrome oder Firefox.
* [https://github.com/advisories GitHub CVE & Security Advisories] – Offizielle Sicherheitswarnungen und CVE-Meldungen von GitHub für Open-Source-Projekte.
# Aktiviere die Entwickler-Tools und wechsle zum Netzwerk-Tab (siehe §19.6 in LaunchCode) :contentReference[oaicite:1]{index=1}.
* [https://cve.mitre.org/ MITRE CVE Database] – Zentrale Datenbank für öffentlich bekannte Schwachstellen (Common Vulnerabilities and Exposures, CVE).
# Lade die Seite neu und identifiziere:
* [https://nvd.nist.gov/ National Vulnerability Database (NVD)] – Die US-amerikanische nationale Datenbank für Schwachstellen, gepflegt vom NIST.
: * Eine GET‑Anfrage für das HTML-Dokument
* [https://www.cvedetails.com/ CVE Details] – Eine benutzerfreundliche Übersicht und Analyse von CVE-Einträgen.
: * Eine GET‑Anfrage für eine CSS-Datei
* [https://www.exploit-db.com/ Exploit Database] – Sammlung von Exploits und Proof-of-Concept-Code für bekannte Schwachstellen.
: * Eine GET‑Anfrage für ein Bild
* [https://www.securityfocus.com/vulnerabilities SecurityFocus Vulnerability Database] – Archiv von Schwachstellen und Sicherheitsmeldungen.
# Notiere für jede Anfrage:
* [https://www.openwall.com/lists/oss-security/ Open Source Security (oss-security)] – Mailingliste und Archiv zu Schwachstellen in Open-Source-Software.
: * Statuscode, z. B. 200 oder 404
* [https://vuldb.com VulDB] – Community-basierte Schwachstellendatenbank mit aktuellen Informationen und Analysen.
: * Content-Type und Größe (Bytes)
* [https://www.zerodayinitiative.com/advisories/published/ Zero Day Initiative Advisories] – Veröffentlichte Schwachstellen und Exploits aus dem Zero Day Initiative Programm.
# Experimentiere:
: * Ändere im HTML die URL einer CSS-Datei auf einen falschen Namen
: * Lade die Seite erneut und erkläre, wie sich das Verhalten ändert :contentReference[oaicite:2]{index=2}
 
=== Übung 2: HTTP‑Response‑Analyse ===
Analysiere diese Beispiel-Antwort:
 
<pre>
HTTP/1.1 404 Not Found
Date: Sat, 21 Jun 2025 20:38:53 +0000
Server: Apache/2.2.3 (CentOS)
Content-Length: 67365
Keep-Alive: timeout=37, max=95
Connection: Keep-alive
Content-Type: text/html
</pre>
 
Beantworte:
# Welche HTTP-Version wird verwendet?
# Wurde der Inhalt erfolgreich gesendet?
# Wie groß ist das Dokument?
# Ist die Verbindung persistent?
# Welcher Medientyp wird zurückgesendet?
# Welche Server-Software und Version?
# Ändert sich der ETag bei neuen Ressourcenversionen?
(Lösungsvorlage siehe UMass-Quelle) :contentReference[oaicite:3]{index=3}
 
=== Übung 3: Minimal-HTTP‑Server mit ASP.NET Core ===
Erstelle eine minimalistische ASP.NET Core‑App (ohne MVC oder Razor), die:
* Auf GET-Anfragen an `/` antwortet mit: `Hello, World!`
* Angabe:
<pre>
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
 
app.Run(async context => {
    context.Response.Headers["Content-Type"] = "text/plain";
    await context.Response.WriteAsync("Hello, World!");
});
 
app.Run();
</pre>
 
=== Übung 4: Antwort-Header anpassen ===
Erweitere Übung 3 so, dass:
* Ein eigener Header `X‑Powered‑By` mit Wert `MyServer` gesetzt wird.
* Der Content-Type auf `text/html` geändert wird und das HTML `<h1>Hallo Welt!</h1>` zurückgeliefert wird.
 
=== Übung 5: HTTP‑Statuscodes dynamisch setzen ===
Erstelle eine Route `/status`, die anhand eines Query‑Parameters `code` den Status festlegt:
 
* Beispielaufruf: `/status?code=201`
* Dein Code:
<pre>
var code = int.Parse(context.Request.Query["code"]);
context.Response.StatusCode = code;
await context.Response.WriteAsync($"Status: {code}");
</pre>
 
Teste mit verschiedenen Codes wie 200, 400, 404, 500.
 
=== Übung 6: GET‑Parameter auslesen ===
Baue eine Route `/hello`, die einen Query‑Parameter `name` erwartet:
 
* Beispiel: `/hello?name=Alice`
* Antwort: `<p>Hello, Alice!</p>`
* Beispiel-Code:
<pre>
if (context.Request.Path == "/hello" && context.Request.Method == "GET") {
  var name = context.Request.Query["name"];
  await context.Response.WriteAsync($"<p>Hello, {name}!</p>");
}

Version vom 24. Juni 2025, 15:18 Uhr

Schwachstellen

Sprachmodell