Mis on rippuv osuti?

Rippuv osuti on programmeerimisviga, mis ilmneb objektorienteeritud kodeerimisel, kui osutiobjekt osutab teisele objektile, mida enam ei eksisteeri. Sel juhul ei ole kursor hiirekursor, vaid kursoriobjekt, mis on mõeldud kasutaja saatmiseks teisele objektile. See viga tekitab peeneid vigu, mis võivad aja jooksul süveneda, ja kujutab endast ka turvaprobleemi, mida kogenud häkkerid võivad rünnata. Rippuv osuti juhtub siis, kui programmeerija kustutab objekti, millele osutatakse, kuid ei kustuta kursorit ennast.

Objektorienteeritud kodeerimisel, kus kodeerimine on jagatud objektideks, on eksemplar, mida nimetatakse osutiks. Osuti eksemplar paigutatakse kuhugi programmi, tavaliselt menüüsse, ja suunab kasutaja teise objekti juurde. Näiteks kui kasutaja tõstab esile menüü jaotise, kuvatakse teine ​​menüü – rippmenüü. See võimaldab programmeerijal seadistada ühte sektsiooni mitu objekti ilma sektsiooni tõrjumata.

Rippuva osuti viga ilmneb siis, kui programmeerija kustutab objekti, millele osutatakse. Kui programmeerija kustutab ka osuti eksemplari, pole probleemi. Kui programmeerija unustab ja hoiab kursorit kodeerimisel, loob see rippuva osuti ja esitab nii kvaliteedi- kui ka ohutusprobleeme.

Kvaliteedi poolest näeb rippuv osuti lohakas ja tekitab peeneid vigu. Selle põhjuseks on asjaolu, et programm ei tea, kuidas tegutseda, kuna tal kästakse midagi teha, kuid seda ei saa teha, kuna objekt on kadunud. See toiming loob juhusliku koodi või rikub koodi väikestel ja peentel viisidel, mida on raske tuvastada. Need vead võivad olla nii väikesed, et muudavad programmi liikumise pisut aeglasemaks, kuid võivad lõpuks muuta programmi – ja isegi arvuti – mittetoimivaks.

Enamik rippuvate osutitega programme töötab esialgu ja võib töötada kuid või isegi aastaid, enne kui vead ilmnevad. Isegi programmid, mis teevad arvutusi, mis tähendab, et rippuv osuti on valemis, võivad siiski teha lihtsaid arvutusi. See on üks põhjusi, miks rippuvate osutite leidmine võib olla nii keeruline.

Kuni 2007. aastani tekitas rippuv osuti ohutusprobleeme ainult teoreetiliselt. Tarkvarafirma Watchfire® koostas seejärel programmi, mis näitas, kuidas rippuvaid osuteid saab ära kasutada, muutes turvariski reaalsuseks. Häkkerid saavad selle vea kaudu programmi tungida ja vigasesse programmi sisestada oma koodi.