Kaj je viseči kazalec?

Viseči kazalec je programska napaka, ki se pojavi pri objektno usmerjenem kodiranju, ko kazalec kaže na drug objekt, ki ne obstaja več. V tem primeru kazalec ni kazalec miške, ampak objekt kazalca, ki je namenjen pošiljanju uporabnika drugemu objektu. Ta napaka ustvarja subtilne hrošče, ki se lahko sčasoma poslabšajo, predstavlja pa tudi varnostni problem, ki ga lahko napadejo usposobljeni hekerji. Viseči kazalec se zgodi, ko programer izbriše predmet, na katerega kaže, vendar ne izbriše samega kazalca.

V objektno usmerjenem kodiranju, pri katerem je kodiranje ločeno na objekte, obstaja primer, imenovan kazalec. Primerek kazalca je postavljen nekje v programu, običajno v meniju, in vodi uporabnika do drugega predmeta. Na primer, če uporabnik označi del menija, se prikaže drug meni – spustni meni. To omogoča programerju, da nastavi več predmetov v enem odseku, ne da bi pri tem prepolovil odsek.

Napaka visečega kazalca se pokaže, ko programer izbriše predmet, na katerega kaže. Če programer izbriše tudi primerek kazalca, ne bo težav. Če programer pozabi in obdrži kazalec v kodiranju, to ustvari viseči kazalec in predstavlja težave s kakovostjo in varnostjo.

Kar zadeva kakovost, je viseči kazalec videti površno in ustvarja subtilne hrošče. To je zato, ker program ne ve, kako ravnati, ker mu je rečeno, naj nekaj naredi, vendar ne more, ker objekta ni več. To dejanje ustvari naključno kodo ali pokvari kodo na majhne, ​​subtilne načine, ki jih je težko zaznati. Te napake so lahko tako majhne, ​​da se program premika nekoliko počasneje, vendar lahko sčasoma povzročijo, da program – in celo računalnik – ne deluje.

Večina programov z visečimi kazalci bo na začetku delovala in lahko še naprej deluje več mesecev ali celo let, preden postanejo napake očitne. Tudi programi, ki izvajajo izračune, kar pomeni, da je viseči kazalec v formuli, so morda še vedno sposobni narediti preproste izračune. To je eden od razlogov, zakaj je iskanje visečih kazalcev tako težko.

Do leta 2007 je viseči kazalec le teoretično povzročal varnostne težave. Podjetje za programsko opremo Watchfire® je nato izdelalo program, ki je pokazal, kako je mogoče izkoristiti viseče kazalce, s čimer je varnostno tveganje postalo resničnost. Hekerji se lahko infiltrirajo v program prek te napake in lahko vnesejo lastno kodo v napačen program.