매달려있는 포인터 란 무엇입니까?
매달려있는 포인터는 포인터 객체가 더 이상 존재하지 않는 다른 객체를 가리킬 때 객체 지향 코딩에서 발생하는 프로그래밍 결함입니다. 이 경우 포인터는 마우스 포인터가 아니라 사용자를 다른 개체로 보내기위한 포인터 개체입니다. 이 결함은 시간이 지남에 따라 악화 될 수있는 미묘한 버그를 생성하며 숙련 된 해커가 공격 할 수있는 보안 문제를 나타냅니다. 매달려있는 포인터는 프로그래머가 가리키는 객체를 지우지 만 포인터 자체는 지우지 않을 때 발생합니다.
코딩이 객체로 분리되는 객체 지향 코딩에는 포인터라고하는 인스턴스가 있습니다. 포인터 인스턴스는 프로그램 어딘가, 일반적으로 메뉴에 배치되며 사용자를 다른 개체로 안내합니다. 예를 들어, 사용자가 메뉴의 섹션을 강조 표시하면 다른 메뉴 (드롭 다운)가 나타납니다. 이를 통해 프로그래머는 섹션을 혼잡하지 않고 한 섹션에 여러 개체를 설정할 수 있습니다.
프로그래머가 가리키는 객체를 지우면 매달려 포인터 오류가 나타납니다. 프로그래머도 포인터 인스턴스를 지우면 아무런 문제가 없습니다. 프로그래머가 포인터를 코딩에서 잊어 버리고 유지하면 매달려있는 포인터가 만들어지고 품질 및 안전 문제가 모두 나타납니다.
품질면에서 매달려있는 포인터는 조잡 해 보이고 미묘한 버그를 만듭니다. 프로그램이 행동하는 방법을 알지 못하기 때문에 무언가를하도록 지시 받았지만 객체가 없어 졌기 때문에 할 수 없기 때문입니다. 이 행위는 감지하기 어려운 작고 미묘한 방법으로 임의의 코드를 작성하거나 코드를 악화시킵니다. 이 버그는 프로그램이 조금 느리게 움직일 수있을 정도로 작을 수 있지만 결국에는 프로그램, 심지어는 컴퓨터도 작동하지 않을 수 있습니다.
매달려있는 포인터가있는 대부분의 프로그램은 처음에는 작동하며 오류가 분명해지기 전에 몇 달 또는 몇 년 동안 계속 작동 할 수 있습니다. 매달려있는 포인터가 수식에 있음을 의미하는 계산을하는 프로그램조차도 간단한 계산을 할 수 있습니다. 이것이 매달려있는 포인터를 찾는 것이 어려운 이유 중 하나입니다.
2007 년까지 매달린 포인터는 이론상 안전 문제 만 만들었습니다. 그런 다음 Watchfire® 소프트웨어 회사는 매달려있는 포인터를 어떻게 활용하여 보안 위험을 현실화 할 수 있는지 보여주는 프로그램을 만들었습니다. 해커는이 버그를 통해 프로그램에 침투 할 수 있으며 결함이있는 프로그램에 자체 코드를 삽입 할 수 있습니다.