Apa itu Penunjuk Menggantung?

Pointer yang menjuntai adalah cacat pemrograman yang terjadi dalam pengkodean berorientasi objek ketika sebuah objek pointer menunjuk ke objek lain yang sudah tidak ada lagi. Dalam contoh ini, pointer bukan pointer mouse tetapi objek pointer yang dimaksudkan untuk mengirim pengguna ke objek lain. Cacat ini menciptakan bug halus yang dapat menjadi lebih buruk seiring waktu dan juga menghadirkan masalah keamanan yang dapat diserang oleh peretas yang terampil. Pointer yang menjuntai terjadi ketika seorang programmer menghapus objek yang ditunjuk tetapi tidak menghapus pointer itu sendiri.

Dalam pengkodean berorientasi objek, di mana pengkodean dipisahkan menjadi objek, ada sebuah instance yang disebut pointer. Instance pointer ditempatkan di suatu tempat dalam program, biasanya di menu, dan mengarahkan pengguna ke objek lain. Misalnya, jika pengguna menyorot bagian menu, menu lain — tarik-turun — muncul. Ini memungkinkan pemrogram untuk mengatur beberapa objek dalam satu bagian tanpa memadati bagian tersebut.

Kesalahan penunjuk menjuntai muncul ketika seorang programmer menghapus objek yang ditunjuk. Jika programmer juga menghapus instance pointer, tidak akan ada masalah. Jika pemrogram lupa dan menyimpan penunjuk dalam pengkodean, ini menciptakan penunjuk yang menjuntai dan menghadirkan masalah kualitas dan keamanan.

Dalam hal kualitas, pointer yang menjuntai terlihat tidak rapi dan menciptakan bug yang halus. Ini karena program tidak tahu bagaimana harus bertindak, karena disuruh melakukan sesuatu tetapi tidak bisa karena objeknya hilang. Tindakan ini menciptakan kode acak atau memperburuk kode dengan cara kecil dan halus yang sulit dideteksi. Bug ini bisa sekecil untuk membuat program bergerak sedikit lebih lambat tetapi pada akhirnya dapat membuat program — dan bahkan komputer — tidak berfungsi.

Kebanyakan program dengan pointer menjuntai akan bekerja pada awalnya dan dapat terus bekerja selama berbulan-bulan atau bahkan bertahun-tahun sebelum kesalahan menjadi jelas. Bahkan program yang membuat perhitungan, yang berarti penunjuk yang menjuntai ada di dalam rumus, mungkin masih dapat membuat perhitungan sederhana. Ini adalah salah satu alasan mengapa menemukan petunjuk yang menjuntai bisa sangat sulit.

Hingga tahun 2007, penunjuk yang menjuntai hanya menciptakan masalah keamanan secara teori. Perusahaan perangkat lunak Watchfire® kemudian membuat program yang menunjukkan bagaimana pointer yang menggantung dapat dieksploitasi, membuat risiko keamanan menjadi kenyataan. Peretas dapat menyusup ke program melalui bug ini dan dapat menyuntikkan kode mereka sendiri ke dalam program yang cacat.