2008-10-01 5 views

Antwort

7

Nicht, wenn Sie den Webserver oder .NET/ASP.NET Stack selbst ausnutzen.

+0

Können Sie bitte mehr erklären. –

+0

Wenn Ihr Code vollständig verwaltet wird, gibt es keine Möglichkeit, den von Ihnen geschriebenen Code in einen Puffer zu überlaufen. Aber der Stapel (.NET und so), auf den Sie aufbauen, ist nicht in reinem verwalteten Code geschrieben, daher besteht die Möglichkeit, diese zu nutzen, selbst wenn sie klein sind. –

+0

Vielen Dank für Ihre Antwort. –

8

Im allgemeinen Fall müssen Sie sich keine Gedanken über Pufferüberläufe machen. Dies ist einer der Hauptvorteile von verwaltetem Code, wobei die Speicherbereinigung vielleicht der andere große Vorteil ist.

Es gibt einige Randfälle, die Sie beachten sollten - jedes Mal, wenn Ihr verwalteter Code mit nicht verwaltetem Code interagiert (Win32-API-Aufrufe, COM-Interop, P/Invoke usw.), besteht die Gefahr von Pufferüberläufen im nicht verwalteten Zustand basierend auf Parametern, die aus verwaltetem Code übergeben wurden.

Auch Code, der als "unsicher" gekennzeichnet ist, kann Speicheradressen direkt so manipulieren, dass Pufferüberlauf verursacht wird. Der meiste C# -Code wird jedoch geschrieben, ohne das Schlüsselwort "unsafe" zu verwenden.

0

Ich hatte ein Tool (HP Dev Inspect) erkennen einen möglichen "Puffere Parameter Überlauf" in meiner ASP.NET App und es war, weil wir keine MaxLength = "20" in einer unserer TextBoxen hatten ..

+2

Andere Art von Pufferüberlauf, naja. Wenn der Wert Ihres Textfelds nicht an einen SQL-Parameter übergeben wird, könnte er Chaos verursachen - oder wenn er an eine Funktion übergeben wird, die nicht den gesamten Text von "Call of Cthulu" für einen Parameter erwartet, könnte dies passieren sich schlecht benehmen. Wissen, dass versierte Benutzer (wie die, die die Web Developer-Erweiterung von FF verwenden) MaxLength einfach ausschalten können. Es ist eine Bequemlichkeitsverteidigung, nicht etwas, auf das Sie sich verlassen sollten. Sie sollten Benutzereingaben immer auf Länge prüfen, wenn es wichtig ist. – Broam