ダングリングポインターとは

宙ぶらりんのポインターは、ポインターオブジェクトがもう存在しない別のオブジェクトを指すときにオブジェクト指向コーディングで発生するプログラミングの欠陥です。 この場合、ポインターはマウスポインターではなく、ユーザーを別のオブジェクトに送信するためのポインターオブジェクトです。 この欠陥は、時間の経過とともに悪化する可能性のある微妙なバグを作成し、熟練したハッカーが攻撃できるセキュリティ問題も提示します。 ダングリングポインターは、プログラマーがポイントされているオブジェクトを消去するが、ポインター自体を消去しない場合に発生します。

オブジェクト指向コーディングでは、コーディングがオブジェクトに分離されており、ポインターと呼ばれるインスタンスがあります。 ポインターインスタンスは、プログラム内のどこか(通常はメニュー)に配置され、ユーザーを別のオブジェクトに誘導します。 たとえば、ユーザーがメニューのセクションを強調表示すると、別のメニュー(ドロップダウン)が表示されます。 これにより、プログラマはセクションを混雑させることなく、1つのセクションに複数のオブジェクトを設定できます。

宙ぶらりんのポインターエラーは、プログラマーがポイントされているオブジェクトを消去するときに現れます。 プログラマがポインタインスタンスも消去する場合、問題はありません。 プログラマーがコーディングのポインターを忘れて保持すると、ぶら下がりポインターが作成され、品質と安全性の両方の問題が発生します。

品質の面では、ぶら下がりポインタはだらしなく見え、微妙なバグを作成します。 これは、プログラムが何かを実行するように指示されているが、オブジェクトがなくなったために実行できないため、アクションを実行する方法がわからないためです。 この行為は、ランダムなコードを作成したり、検出が困難な小さな微妙な方法でコードを劣化させたりします。 これらのバグは、プログラムの動作を少し遅くするほど小さい場合もありますが、最終的にはプログラム(さらにはコンピューター)が機能しなくなる可能性があります。

宙ぶらりんのポインターを使用するほとんどのプログラムは、最初は動作し、エラーが明らかになるまで数か月または数年も動作し続ける場合があります。 計算を行うプログラム、つまりぶら下がりポインタが式に含まれている場合でも、簡単な計算を行うことができます。 これが、宙ぶらりんのポインターを見つけるのが非常に難しい理由の1つです。

2007年まで、宙ぶらりんのポインターは、理論的には安全性の問題のみを引き起こしました。 その後、Watchfire®ソフトウェア会社は、ぶら下がりポインターがどのように悪用される可能性があるかを示すプログラムを作成し、セキュリティリスクを現実にしました。 ハッカーはこのバグを介してプログラムに侵入し、欠陥のあるプログラムに独自のコードを挿入することができます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?