ぶら下がっているポインターとは何ですか?
ダングリングポインターは、ポインターオブジェクトがもはや存在しない別のオブジェクトを指しているときにオブジェクト指向のコーディングで発生するプログラミングの欠陥です。この例では、ポインターはマウスポインターではなく、ユーザーを別のオブジェクトに送信することを目的としたポインターオブジェクトです。この欠陥は、時間とともに悪化する可能性のある微妙なバグを作成し、熟練したハッカーが攻撃できるセキュリティの問題を提示します。プログラマーが指し示されているがポインター自体を消去しないオブジェクトを消去したときにダングリングポインターが発生します。
オブジェクト指向のコーディングでは、コーディングがオブジェクトに分離されている場合、ポインターと呼ばれるインスタンスがあります。ポインターインスタンスは、通常はメニューにプログラムのどこかに配置され、ユーザーを別のオブジェクトに導きます。たとえば、ユーザーがメニューのセクションを強調している場合、別のメニュー(ドロップダウン)が表示されます。これにより、プログラマーはセクションを混雑せずに1つのセクションにいくつかのオブジェクトを設定できます。
ダングリングポインターエラーマンプログラマーが指し示されているオブジェクトを消去する場合。プログラマがポインターインスタンスも消去した場合、問題はありません。プログラマがコーディングにポインターを忘れて保持する場合、これによりぶら下がっているポインターが作成され、品質と安全の両方の問題が発生します。
品質の点では、ぶら下がっているポインターはずさんに見え、微妙なバグを作成します。これは、プログラムが行動する方法を知らないためです。なぜなら、それは何かをするように言われているが、オブジェクトがなくなったからではないからです。この法律は、ランダムコードを作成するか、検出が困難な小規模で微妙な方法でコードを悪化させます。これらのバグは、プログラムの動きを少し遅くするのと同じくらい小さくなる可能性がありますが、最終的にはプログラム、さらにはコンピューターでさえ機能しない可能性があります。
ぶら下がっているポインターを備えたほとんどのプログラムは、最初に機能し、エラーが明らかになる前に数ヶ月または数年間働き続ける可能性があります。 EVぶら下がっているポインターが式にあることを意味する計算を行うENプログラムは、まだ簡単な計算を行うことができるかもしれません。これが、ぶら下がっているポインターを見つけることが非常に難しい理由の1つです。
2007年まで、ぶら下がっているポインターは理論的に安全性の問題を引き起こしました。 Watchfire®ソフトウェア会社は、ぶら下がっているポインターがどのように活用され、セキュリティリスクを実現できるかを示すプログラムを作成しました。ハッカーはこのバグを介してプログラムに侵入することができ、欠陥のあるプログラムに独自のコードを注入することができます。