Wat is een bungelende wijzer?

Een hangende aanwijzer is een programmeerfout die optreedt bij objectgeoriënteerde codering wanneer een aanwijzerobject naar een ander object verwijst dat niet meer bestaat. In dit geval is een aanwijzer geen muisaanwijzer maar een aanwijzerobject dat bedoeld is om de gebruiker naar een ander object te sturen. Deze fout veroorzaakt subtiele bugs die met de tijd erger kunnen worden en vormt ook een beveiligingsprobleem dat bekwame hackers kunnen aanvallen. Een bungelende wijzer vindt plaats wanneer een programmeur het object waarnaar wordt gewezen, maar de wijzer zelf niet wist.

Bij objectgeoriënteerde codering, waarbij codering is gescheiden in objecten, is er een instantie die een pointer wordt genoemd. De aanwijzerinstantie wordt ergens in het programma geplaatst, meestal in een menu, en leidt de gebruiker naar een ander object. Als de gebruiker bijvoorbeeld een gedeelte van een menu markeert, verschijnt een ander menu - een vervolgkeuzelijst -. Hiermee kan de programmeur meerdere objecten in één sectie instellen zonder de sectie te verdringen.

De bungelende aanwijsfout manifesteert zich wanneer een programmeur het object waarnaar wordt gewezen wist. Als het programmeerapparaat ook de aanwijzerinstantie wist, is er geen probleem. Als de programmeur de aanwijzer vergeet en in de codering houdt, creëert dit een bengelende aanwijzer en levert dit zowel kwaliteits- als veiligheidsproblemen op.

Qua kwaliteit ziet een bungelende wijzer er slordig uit en creëert subtiele bugs. Dit komt omdat het programma niet weet hoe het moet handelen, omdat het wordt verteld iets te doen, maar kan het niet omdat het object weg is. Deze handeling maakt willekeurige code of verslechtert code op kleine, subtiele manieren die moeilijk te detecteren zijn. Deze bugs kunnen zo klein zijn dat het programma iets langzamer beweegt, maar uiteindelijk kan het programma - en zelfs de computer - niet meer werken.

De meeste programma's met bengelende wijzers werken in eerste instantie en kunnen maanden of zelfs jaren blijven werken voordat de fouten duidelijk worden. Zelfs programma's die berekeningen maken, wat betekent dat de bungelende wijzer in de formule zit, kunnen misschien nog steeds eenvoudige berekeningen maken. Dit is een van de redenen waarom het vinden van bengelende wijzers zo moeilijk kan zijn.

Tot 2007 zorgde de bungelende wijzer alleen in theorie voor veiligheidsproblemen. Het softwarebedrijf Watchfire® maakte vervolgens een programma dat liet zien hoe bengelende pointers kunnen worden benut, waardoor het beveiligingsrisico een feit wordt. Hackers kunnen via deze bug een programma infiltreren en hun eigen code in het gebrekkige programma injecteren.

ANDERE TALEN

heeft dit artikel jou geholpen? bedankt voor de feedback bedankt voor de feedback

Hoe kunnen we helpen? Hoe kunnen we helpen?