Co to jest zwisający wskaźnik?

Wiszący wskaźnik to błąd programowania, który występuje w kodowaniu obiektowym, gdy obiekt wskaźnika wskazuje na inny obiekt, który już nie istnieje. W tym przypadku wskaźnik nie jest wskaźnikiem myszy, ale obiektem wskaźnika, który ma na celu skierowanie użytkownika do innego obiektu. Ta usterka tworzy subtelne błędy, które z czasem mogą się nasilać, a także stanowi problem bezpieczeństwa, który mogą zaatakować wykwalifikowani hakerzy. Wiszący wskaźnik ma miejsce, gdy programista usuwa wskazywany obiekt, ale nie usuwa samego wskaźnika.

W kodowaniu obiektowym, w którym kodowanie jest podzielone na obiekty, istnieje instancja zwana wskaźnikiem. Instancja wskaźnika jest umieszczana gdzieś w programie, zazwyczaj w menu i prowadzi użytkownika do innego obiektu. Na przykład, jeśli użytkownik podświetli sekcję menu, pojawi się inne menu — menu rozwijane. Pozwala to programiście na ustawienie kilku obiektów w jednej sekcji bez zapychania sekcji.

Błąd wiszącego wskaźnika pojawia się, gdy programista usuwa wskazywany obiekt. Jeśli programista skasuje również instancję wskaźnika, nie będzie problemu. Jeśli programista zapomni i zatrzyma wskaźnik w kodzie, tworzy to zwisający wskaźnik i przedstawia zarówno problemy z jakością, jak i bezpieczeństwem.

Pod względem jakości zwisający wskaźnik wygląda niechlujnie i tworzy subtelne błędy. Dzieje się tak, ponieważ program nie wie, jak działać, ponieważ każe mu coś zrobić, ale nie może, ponieważ obiekt zniknął. Ten akt tworzy losowy kod lub pogarsza kod na małe, subtelne sposoby, które są trudne do wykrycia. Błędy te mogą być tak małe, że powodują, że program działa nieco wolniej, ale mogą w końcu spowodować, że program — a nawet komputer — przestanie działać.

Większość programów z wiszącymi wskaźnikami będzie działać początkowo i może działać przez miesiące, a nawet lata, zanim błędy staną się oczywiste. Nawet programy wykonujące obliczenia, co oznacza, że ​​we wzorze znajduje się niepewny wskaźnik, mogą nadal wykonywać proste obliczenia. To jeden z powodów, dla których znalezienie wiszących wskaźników może być tak trudne.

Do 2007 r. zwisający wskaźnik stwarzał problemy dotyczące bezpieczeństwa tylko w teorii. Firma programistyczna Watchfire® stworzyła następnie program, który pokazał, w jaki sposób można wykorzystać wiszące wskaźniki, czyniąc zagrożenie bezpieczeństwa rzeczywistością. Hakerzy są w stanie zinfiltrować program za pomocą tego błędu i wstrzyknąć własny kod do programu z błędami.