Was ist ein Dangling Pointer?
Ein baumelnder Zeiger ist ein Programmierfehler, der bei der objektorientierten Codierung auftritt, wenn ein Zeigerobjekt auf ein anderes Objekt zeigt, das nicht mehr vorhanden ist. In diesem Fall ist ein Zeiger kein Mauszeiger, sondern ein Zeigerobjekt, das den Benutzer an ein anderes Objekt senden soll. Dieser Fehler führt zu subtilen Fehlern, die sich mit der Zeit verschlimmern können, und stellt auch ein Sicherheitsproblem dar, das erfahrene Hacker angreifen können. Ein baumelnder Zeiger tritt auf, wenn ein Programmierer das Objekt löscht, auf das gezeigt wird, aber den Zeiger selbst nicht löscht.
Bei der objektorientierten Codierung, bei der die Codierung in Objekte unterteilt ist, gibt es eine Instanz, die als Zeiger bezeichnet wird. Die Zeigerinstanz wird im Programm platziert, normalerweise in einem Menü, und führt den Benutzer zu einem anderen Objekt. Wenn der Benutzer beispielsweise einen Abschnitt eines Menüs markiert, wird ein anderes Menü - ein Dropdown - angezeigt. Auf diese Weise kann der Programmierer mehrere Objekte in einem Abschnitt einrichten, ohne den Abschnitt zu überfüllen.
Der Fehler mit dem baumelnden Zeiger tritt auf, wenn ein Programmierer das Objekt löscht, auf das gezeigt wird. Wenn der Programmierer auch die Zeigerinstanz löscht, gibt es kein Problem. Wenn der Programmierer den Zeiger in der Codierung vergisst und beibehält, wird ein baumelnder Zeiger erstellt, der sowohl Qualitäts- als auch Sicherheitsprobleme aufzeigt.
In Bezug auf die Qualität sieht ein baumelnder Zeiger schlampig aus und verursacht subtile Fehler. Dies liegt daran, dass das Programm nicht weiß, wie es zu handeln ist, weil es aufgefordert wird, etwas zu tun, aber nicht, weil das Objekt verschwunden ist. Dieser Vorgang erstellt zufälligen Code oder verschlechtert den Code auf kleine, subtile Weise, die schwer zu erkennen sind. Diese Fehler können so klein sein, dass das Programm ein wenig langsamer wird, aber schließlich das Programm - und sogar den Computer - funktionsunfähig machen.
Die meisten Programme mit baumelnden Zeigern funktionieren zunächst und können Monate oder sogar Jahre weiterarbeiten, bevor die Fehler offensichtlich werden. Sogar Programme, die Berechnungen durchführen, dh der baumelnde Zeiger befindet sich in der Formel, können möglicherweise einfache Berechnungen durchführen. Dies ist einer der Gründe, warum das Auffinden baumelnder Zeiger so schwierig sein kann.
Bis 2007 hat der baumelnde Zeiger nur theoretisch zu Sicherheitsproblemen geführt. Das Watchfire®-Softwareunternehmen erstellte daraufhin ein Programm, das zeigte, wie herabhängende Zeiger ausgenutzt werden können, um das Sicherheitsrisiko Wirklichkeit werden zu lassen. Hacker können über diesen Fehler ein Programm infiltrieren und ihren eigenen Code in das fehlerhafte Programm einfügen.