¿Qué es una referencia colgante?

Un puntero colgante es una falla de programación que ocurre en la codificación orientada a objetos cuando un puntero apunta a otro objeto que ya no existe. En este caso, un puntero no es un puntero de mouse, sino un objeto de puntero que está destinado a enviar al usuario a otro objeto. Esta falla crea errores sutiles que pueden empeorar con el tiempo y también presenta un problema de seguridad que los piratas informáticos expertos pueden atacar. Un puntero que cuelga ocurre cuando un programador borra el objeto al que apunta pero no borra el puntero en sí.

En la codificación orientada a objetos, en la que la codificación se separa en objetos, existe una instancia llamada puntero. La instancia del puntero se coloca en algún lugar del programa, normalmente en un menú, y lleva al usuario a otro objeto. Por ejemplo, si el usuario resalta una sección de un menú, aparece otro menú, un menú desplegable. Esto permite al programador configurar varios objetos en una sección sin saturar la sección.

El error del puntero colgante se manifiesta cuando un programador borra el objeto al que apunta. Si el programador también borra la instancia del puntero, no habrá ningún problema. Si el programador olvida y mantiene el puntero en la codificación, esto crea un puntero colgando y presenta problemas de calidad y seguridad.

En términos de calidad, un puntero colgante parece descuidado y crea errores sutiles. Esto se debe a que el programa no sabe cómo actuar, porque se le dice que haga algo, pero no puede porque el objeto se ha ido. Este acto crea código aleatorio o lo deteriora de formas pequeñas y sutiles que son difíciles de detectar. Estos errores pueden ser tan pequeños como para hacer que el programa se mueva un poco más lento, pero eventualmente pueden hacer que el programa, e incluso la computadora, no funcione.

La mayoría de los programas con punteros colgantes funcionarán inicialmente y pueden continuar funcionando durante meses o incluso años antes de que los errores se vuelvan obvios. Incluso los programas que realizan cálculos, lo que significa que el puntero colgante está en la fórmula, aún pueden realizar cálculos simples. Esta es una de las razones por las que encontrar punteros colgantes puede ser tan difícil.

Hasta 2007, el puntero colgante solo creaba problemas de seguridad en teoría. La compañía de software Watchfire® luego elaboró ​​un programa que mostraba cómo se pueden explotar los punteros colgantes, haciendo realidad el riesgo de seguridad. Los piratas informáticos pueden infiltrarse en un programa a través de este error y pueden inyectar su propio código en el programa defectuoso.