Hvad er en dinglende pointer?
En dinglende markør er en programmeringsfejl, der opstår ved objektorienteret kodning, når et markørobjekt peger på et andet objekt, der ikke længere findes. I dette tilfælde er en markør ikke en musemarkør, men et markørobjekt, der er beregnet til at sende brugeren til et andet objekt. Denne fejl skaber subtile bugs, der kan blive værre med tiden og også præsenterer et sikkerhedsproblem, som dygtige hackere kan angribe. En dinglende markør sker, når en programmør sletter objektet, der peges på, men ikke sletter selve markøren.
I objektorienteret kodning, hvor kodning er opdelt i objekter, er der et eksempel kaldet en markør. Markørinstansen placeres et sted i programmet, typisk i en menu, og fører brugeren til et andet objekt. Hvis brugeren for eksempel fremhæver et afsnit i en menu, vises en anden menu - en rulleliste. Dette gør det muligt for programmereren at opsætte flere objekter i et afsnit uden at overfylde sektionen.
Den dinglende markørfejl manifesterer sig, når en programmør sletter det objekt, der peges på. Hvis programmereren også sletter markøren, er der ikke noget problem. Hvis programmereren glemmer og holder markøren i kodningen, skaber dette en dinglende markør og præsenterer både kvalitets- og sikkerhedsspørgsmål.
Med hensyn til kvalitet ser en dinglende markør slordig ud og skaber subtile bugs. Dette skyldes, at programmet ikke ved, hvordan det skal handle, fordi det bliver bedt om at gøre noget, men ikke kan, fordi objektet er væk. Denne handling skaber tilfældig kode eller forringes koden på små, subtile måder, der er vanskelige at opdage. Disse bugs kan være så små som at få programmet til at bevæge sig lidt langsommere, men kan i sidste ende gøre programmet - og endda computeren - til ikke at fungere.
De fleste programmer med dinglende tips fungerer oprindeligt og kan fortsætte med at arbejde i måneder eller endda år, før fejlene bliver tydelige. Selv programmer, der laver beregninger, hvilket betyder, at den dinglende markør er i formlen, er muligvis stadig i stand til at lave enkle beregninger. Dette er en af grundene til, at det kan være så svært at finde dinglende tips.
Indtil 2007 skabte den dinglende markør kun sikkerhedsproblemer i teorien. Watchfire®-softwarevirksomheden lavede derefter et program, der viste, hvordan dinglende tips kan udnyttes, hvilket gjorde sikkerhedsrisikoen til virkelighed. Hackere er i stand til at infiltrere et program via denne fejl og kan injicere deres egen kode i det mangelfulde program.