Co to jest zwisający wskaźnik?
Zwisający wskaźnik to błąd programowy, który występuje w kodowaniu obiektowym, gdy obiekt wskaźnika wskazuje 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 wysłanie użytkownika do innego obiektu. Ta wada powoduje subtelne błędy, które z czasem mogą się pogorszyć, a także stanowi problem bezpieczeństwa, który mogą zaatakować wykwalifikowani hakerzy. Zwisający wskaźnik ma miejsce, gdy programista usuwa obiekt, na który jest wskazywany, ale nie kasuje samego wskaźnika.
W kodowaniu obiektowym, w którym kodowanie jest podzielone na obiekty, występuje 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 ustawić kilka obiektów w jednej sekcji bez zatłoczenia sekcji.
Wiszący błąd wskaźnika pojawia się, gdy programista usuwa wymazany obiekt. Jeśli programista usunie również instancję wskaźnika, nie będzie problemu. Jeśli programista zapomni i zatrzyma wskaźnik w kodowaniu, tworzy to wiszący wskaźnik i przedstawia problemy zarówno z jakością, jak i bezpieczeństwem.
Pod względem jakości zwisający wskaźnik wygląda niechlujnie i tworzy subtelne błędy. Wynika to z faktu, że program nie wie, jak postępować, ponieważ nakazuje mu się coś zrobić, ale nie może, ponieważ obiekt zniknął. Ten czyn tworzy losowy kod lub psuje kod na małe, subtelne sposoby, które są trudne do wykrycia. Błędy te mogą być tak małe, że powodują spowolnienie programu, ale ostatecznie mogą spowodować, że program - a nawet komputer - przestanie działać.
Większość programów ze zwisającymi wskaźnikami będzie działać początkowo i może kontynuować pracę przez miesiące, a nawet lata, zanim błędy staną się oczywiste. Nawet programy, które wykonują obliczenia, co oznacza, że zwisający wskaźnik znajduje się w formule, mogą nadal być w stanie wykonywać proste obliczenia. Jest to jeden z powodów, dla których znalezienie zwisających wskaźników może być tak trudne.
Do 2007 r. Zwisający wskaźnik tylko teoretycznie stwarzał problemy bezpieczeństwa. Firma produkująca oprogramowanie Watchfire® opracowała program pokazujący, w jaki sposób można wykorzystać wiszące wskaźniki, dzięki czemu ryzyko bezpieczeństwa staje się rzeczywistością. Hakerzy mogą infiltrować program za pośrednictwem tego błędu i mogą wstrzykiwać własny kod do wadliwego programu.