csharp / expert
Snippet
Kryptographische Buffer-Bereinigung mit Stack-basiertem Speicher
Bei der Verarbeitung sensibler Daten reicht es nicht aus, sich auf den Garbage Collector zu verlassen. 'stackalloc' erstellt einen Buffer auf dem Stack, und 'buffer.Clear()' stellt sicher, dass Geheimnisse sofort nach der Verwendung gelöscht werden, was die Angriffsfläche für Memory Dumps verringert.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void ProcessSecureData(ReadOnlySpan<char> sensitive){Span<byte> buffer = stackalloc byte[sensitive.Length * 2];try{// Perform cryptographic operationsSystem.Text.Encoding.UTF8.GetBytes(sensitive, buffer);PerformOperation(buffer);}finally{// Overwrite memory to prevent data leakage after method returnsbuffer.Clear();}}
Erklärung
1
stackalloc byte[...]
Alloziert Speicher auf dem Stack, wodurch Heap-Tracking und GC-Overhead vermieden werden.
2
buffer.Clear()
Nullt den Speicherbereich, um sensible Überreste zu bereinigen.