Kurse:Täglich Routing Ü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: „== Moderne MapGet-Syntax (.NET 6+) == <syntaxhighlight lang="csharp"> // Minimal-API: Endpunkte direkt am app-Objekt definieren var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); // GET-Endpoint für /hello app.MapGet("/hello", () => "Hallo Welt!"); // GET-Endpoint mit Parameter app.MapGet("/user/{name}", (string name) => $"Hallo, {name}!"); // GET-Endpoint mit mehreren Parametern app.MapGet("/add/{a:int}/{b:int}", (int a, in…“
 
// via Wikitext Extension for VSCode
 
Zeile 1: Zeile 1:
== Moderne MapGet-Syntax (.NET 6+) ==
==Schwachstellen==
 
===Sprachmodell===
<syntaxhighlight lang="csharp">
* [https://airiskdatabase.com AI Risk Database] – Eine Datenbank mit Risiken und Schwachstellen im Bereich Künstliche Intelligenz.
// Minimal-API: Endpunkte direkt am app-Objekt definieren
* [https://github.com/advisories GitHub CVE & Security Advisories] – Offizielle Sicherheitswarnungen und CVE-Meldungen von GitHub für Open-Source-Projekte.
var builder = WebApplication.CreateBuilder(args);
* [https://cve.mitre.org/ MITRE CVE Database] – Zentrale Datenbank für öffentlich bekannte Schwachstellen (Common Vulnerabilities and Exposures, CVE).
var app = builder.Build();
* [https://nvd.nist.gov/ National Vulnerability Database (NVD)] – Die US-amerikanische nationale Datenbank für Schwachstellen, gepflegt vom NIST.
 
* [https://www.cvedetails.com/ CVE Details] – Eine benutzerfreundliche Übersicht und Analyse von CVE-Einträgen.
// GET-Endpoint für /hello
* [https://www.exploit-db.com/ Exploit Database] – Sammlung von Exploits und Proof-of-Concept-Code für bekannte Schwachstellen.
app.MapGet("/hello", () => "Hallo Welt!");
* [https://www.securityfocus.com/vulnerabilities SecurityFocus Vulnerability Database] – Archiv von Schwachstellen und Sicherheitsmeldungen.
 
* [https://www.openwall.com/lists/oss-security/ Open Source Security (oss-security)] – Mailingliste und Archiv zu Schwachstellen in Open-Source-Software.
// GET-Endpoint mit Parameter
* [https://vuldb.com VulDB] – Community-basierte Schwachstellendatenbank mit aktuellen Informationen und Analysen.
app.MapGet("/user/{name}", (string name) => $"Hallo, {name}!");
* [https://www.zerodayinitiative.com/advisories/published/ Zero Day Initiative Advisories] – Veröffentlichte Schwachstellen und Exploits aus dem Zero Day Initiative Programm.
 
// GET-Endpoint mit mehreren Parametern
app.MapGet("/add/{a:int}/{b:int}", (int a, int b) => $"Summe: {a + b}");
 
// POST-Endpoint (als Vergleich)
app.MapPost("/echo", async (HttpContext ctx) =>
{
    using var reader = new StreamReader(ctx.Request.Body);
    var body = await reader.ReadToEndAsync();
    return Results.Text($"Empfangen: {body}");
});
 
app.Run();
</syntaxhighlight>
 
'''Kommentar''':
* Kein explizites <code>UseRouting</code> und <code>UseEndpoints</code> nötig!
* Routen-Parameter werden direkt als Methodenparameter übergeben (z.B. <code>(string name)</code>).
* Typen (int, string, etc.) dienen als Constraints.
* Für komplexe Logik kann auch ein Lambda mit <code>HttpContext</code> verwendet werden.
 
'''Übung''':
1. Schreibe einen neuen Endpoint <code>/greet/{vorname}/{nachname}</code>, der <code>Hallo, Vorname Nachname!</code> zurückgibt.
2. Ergänze einen Endpoint, der das aktuelle Datum unter <code>/now</code> ausgibt.
 
----
 
= Vorteile der modernen Form =
* Kürzer, lesbarer, weniger Boilerplate.
* Ideal für kleine APIs und Lernprojekte.
* Alle Constraints, Parameter etc. funktionieren wie gewohnt.

Version vom 24. Juni 2025, 15:18 Uhr

Schwachstellen

Sprachmodell