Verhindern Pufferüberlauf ist entscheidend für den Schutz der Sicherheit Ihres Computers und angeschlossenen Server und sind das Ergebnis einer schlechten Input -Validierung. Sie können Ihr System von Pufferüberlauf-Attacken schützen, indem Sie ein paar einfache Schritte und die entsprechende Aktion ausgeführt . Identifizieren und die Teilnahme an Fragen in Ihrem System der C -Programmierung ist der Schwerpunkt zu verhindern Pufferüberlauf in der Zukunft. Mit einem Non -Executable Stapel
Diese Methode der Überlaufsicherung einen Stapel , der konfiguriert ist , keine ausführbaren Code zu halten. Besorgen Sie sich einen Kernel -Patch für Linux -und Solaris- Systeme , die nicht ausführbaren Stack konfigurieren. In Windows XP können Sie Data Execution Prevention Umfänge mit dem Betriebssystem (OS) zu schützen auch den Stack gegen Pufferüberlauf gesetzt . Die Palisade Website warnt jedoch, dass Heap-basierten überläuft und statischen Daten Segment Überläufe nicht durch diese Technik vermieden werden.
Dynamische Runtime
Verhindern Pufferüberlauf durch die Implementierung ein dynamische Laufzeit Prävention Prozess auf Ihrem System. Pufferüberlauf Bedingungen und Risiken während des Laufs des aktuellen Programms in diesem Verfahren erkannt und verhindert so ein Überlauf Angriff auftreten. Unterschiedliche Laufzeit Prozesse umfassen " Kanarienvogel " --- die die Zeile " Kanarienvogel " verleiht Ihrem Programm Codierung --- und Kopieren des Programms Absenderadresse. Die letztere Methode dient als Informations- Backup als Mittel zur Funktionalität des Programms zu regenerieren , sobald ein Überlauf Angriff behoben wurde.
Sichere Versionen von Funktionen
Buffer Overflows außerdem können durch Verwendung eines " sicherer" oder stabiler Version eines Programms Funktion verhindert werden. Zum Beispiel werden die Funktionen und strncpy snprintf sind sicherer und stabiler als die älteren strcpy und Sprint Sprache . Beim Erstellen neuer Anwendungen in Ihrem Programm weiterhin sicherstellen, dass alternative , sind sicherer Code-Funktionen durchgehend verwendet .
Andere Beispiele für instabile Funktionen
Vermeidung "unsicher" oder instabile Funktionalität insgesamt kann auch verhindern, Pufferüberlauf . Wenn möglich, vermeiden Sie die folgenden Funktionen beim Schreiben Ihres Programms : strcpy ( ) , strcat () , sprintf ( ) , scanf () , sscanf () , fscanf () , vfscanf () , vsprintf , vscanf () , vsscanf () , streadd () , strecpy () und strtrns ().