csharp / expert
Snippet
Nullstellen sensibler Speicherbereiche via Spans
In Hochsicherheitsanwendungen ist es riskant, sensible Daten wie Passwörter im Speicher zu belassen. Die Verwendung von 'stackalloc' zusammen mit 'Span<T>.Clear()' stellt sicher, dass der Speicher unmittelbar nach der Verwendung mit Nullen überschrieben wird, was das Zeitfenster für Memory-Scraping-Angriffe verringert.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
public unsafe void HandleSecret(){Span<byte> secretBuffer = stackalloc byte[32];try{// Perform cryptographic operations here}finally{secretBuffer.Clear(); // Explicitly overwrites memory with zeros}}
Erklärung
1
stackalloc byte[32]
Allokiert Speicher auf dem Stack, was schneller ist und keinen GC-Overhead verursacht.
2
secretBuffer.Clear()
Eine performance-optimierte Methode, um den gesamten Span mit dem Standardwert (Null) zu füllen.