? Sicherheitslücken in Software kann in mehreren Formen als Programmierer sich vorstellen kann . Einer dieser Angriffe ist der Pufferüberlauf , wenn ein Angreifer bietet mehr Informationen als ein Programm verarbeiten kann. Insbesondere Programmierung Szenarien, z. B. System-Programmierung oder Low-Level- Programmiersprache C sind Zeichenfolgenpuffern anfällig für Ausbeutung . Bestimmte String-Handling- Techniken eingesetzt werden, um diese Angriffe zu verhindern. Diese Techniken umfassen die Überwachung der String-Länge , die Überprüfung Puffer Grenzen und mit sicheren String - Handling-Funktionen . String Buffer Overrun
Wenn Programmierer Code textlichen Benutzereingaben verarbeiten zu schreiben, dass die Eingabe bewegt sich oft durch einen Puffer oder variabel sein. Buffer " Überschreitung " tritt auf, wenn der Programmierer nicht schafft einen Puffer von ausreichender Größe, um Benutzereingaben zu behandeln. Der Eingang ist nicht zu stoppen, wenn der Puffer nicht mehr . Vielmehr speichert das Programm den Text in dem Speicher direkt nach dem Puffer möglicherweise überschreiben entscheidend Programmdaten . String Buffer Overflows am häufigsten auftreten, wenn Programmierer nicht überprüfen Benutzereingaben richtig .
Überprüfung Boundaries
Benutzereingaben können oft über die Grenzen eines Arrays erweitern wegen der schlechten Grenze Überprüfung . Besonders in C, wo Strings als Arrays von Zeichen dargestellt werden , Einfügen und Bearbeiten von Strings in dieser Arrays kann kompliziert werden . Es ist möglich, verrechnen Array-Index -Werte und überschreiben Stellen im Speicher außerhalb des Arrays. Durch immer einschließlich Code, der die Grenzen des Arrays überprüft , um sicherzustellen, dass sie nicht überschrieben werden , kann der Programmierer begrenzen Zeichenfolge Zugriff auf das Array.
Verwendung großer Puffer
höheren Sprachen wie C # oder Java, kann der Programmierer den Zugriff auf bestimmte Objekte, die Eingang große Puffer enthalten . Java BufferedReader ist ein gutes Beispiel dafür. Der Benutzer kann diese Aufgabe mit einem großen Kerl oder Stick mit seiner großen Standard-Puffergröße , um die Eingabe zu behandeln erstellen. Die Aufgabe übernimmt dann Text im Puffer. In untergeordneten Sprachen wie C , der Programmierer wird höchstwahrscheinlich Nutzung Zeichen-Arrays . In diesem Fall muss der Programmierer sicherstellen, dass die Zeichen-Array Empfangen von Daten groß genug, um jede denkbare Datengröße handhaben bleibt .
Use Secure Funktionen
Soweit Benutzereingaben geht , setzt die C -Programmiersprache unterschiedliche Funktionen für verschiedene Eingangs- Operationen . Nicht alle diese Optionen sind sicher. Zum Beispiel kann die Ruft Funktion überprüft nicht Benutzereingaben überhaupt , und wird es etwas in das Programm übergeben . Die Strcpy Funktion führt keine Überprüfung der Grenzen . Stattdessen sollten andere sichere Funktionen eingesetzt werden, wie der fgets oder strncpy Funktionen werden.