Che cos'è un puntatore pendente?
Un puntatore pendente è un difetto di programmazione che si verifica nella codifica orientata agli oggetti quando un oggetto puntatore punta a un altro oggetto che non esiste più. In questo caso, un puntatore non è un puntatore del mouse ma un oggetto puntatore destinato a inviare l'utente a un altro oggetto. Questo difetto crea bug sottili che possono peggiorare con il tempo e presenta anche un problema di sicurezza che gli hacker esperti possono attaccare. Un puntatore penzolante si verifica quando un programmatore cancella l'oggetto puntato ma non cancella il puntatore stesso.
Nella codifica orientata agli oggetti, in cui la codifica è separata in oggetti, esiste un'istanza chiamata puntatore. L'istanza del puntatore viene posizionata da qualche parte nel programma, in genere in un menu, e conduce l'utente a un altro oggetto. Ad esempio, se l'utente evidenzia una sezione di un menu, viene visualizzato un altro menu, un menu a discesa. Ciò consente al programmatore di impostare diversi oggetti in una sezione senza affollare la sezione.
L'errore del puntatore pendente si manifesta quando un programmatore cancella l'oggetto a cui punta. Se il programmatore cancella anche l'istanza del puntatore, non ci saranno problemi. Se il programmatore dimentica e mantiene il puntatore nella codifica, questo crea un puntatore penzolante e presenta problemi di qualità e sicurezza.
In termini di qualità, un puntatore penzolante sembra sciatto e crea bug sottili. Questo perché il programma non sa come agire, perché gli viene detto di fare qualcosa ma non può farlo perché l'oggetto è sparito. Questo atto crea codice casuale o deteriora il codice in modi piccoli e sottili che sono difficili da rilevare. Questi bug possono essere così piccoli da rendere il programma un po 'più lento ma alla fine potrebbero rendere il programma - e persino il computer - non funzionante.
La maggior parte dei programmi con puntatori pendenti funzionerà inizialmente e potrebbe continuare a funzionare per mesi o addirittura anni prima che gli errori diventino evidenti. Anche i programmi che eseguono calcoli, il che significa che il puntatore penzolante è nella formula, possono comunque essere in grado di effettuare calcoli semplici. Questo è uno dei motivi per cui trovare puntatori penzolanti può essere così difficile.
Fino al 2007, l'indicatore penzolante creava solo problemi di sicurezza in teoria. La società di software Watchfire® ha quindi realizzato un programma che mostrava come sfruttare i puntatori penzolanti, trasformando il rischio in sicurezza in realtà. Gli hacker sono in grado di infiltrarsi in un programma tramite questo bug e possono iniettare il proprio codice nel programma difettoso.