Skip to main content

¿Qué es una referencia colgante?

  • Goddard

Un puntero colgante es una falla de programación que ocurre en la codificación orientada a objetos cuando un objeto puntero apunta a otro objeto que ya no existe. En este caso, un puntero no es un puntero del mouse, sino un objeto 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 hackers expertos pueden atacar. Un puntero colgante ocurre cuando un programador borra el objeto al que apunta pero no borra el puntero.

En la codificación orientada a objetos, en la que la codificación se separa en objetos, hay una instancia llamada puntero. La instancia del puntero se coloca en algún lugar del programa, generalmente 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 de 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 colgante 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 deteriora el código en 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 funcionen.

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 evidentes. 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 cuales encontrar punteros colgantes puede ser tan difícil.

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