Bagikan melalui


Handel Konteks Ketat dan Jenis yang Ketat

Gunakan atribut strict_context_handle untuk semua handel konteks. Secara default, handel konteks tidak terkait dengan antarmuka, yang berarti handel konteks dapat dibuat pada satu antarmuka, lalu diteruskan ke antarmuka lain. Ini adalah serangan yang mudah, dan banyak server RPC gagal mencegahnya.

Jika dua antarmuka hidup berdampingan dalam proses yang sama, penyerang dapat membuka handel konteks pada satu antarmuka, dan meneruskannya ke antarmuka lain, yang dapat melakukan perjalanan melalui data yang tidak terduga. Banyak pengembang percaya perangkat lunak mereka adalah satu-satunya antarmuka dalam suatu proses, tetapi seringkali itu tidak terjadi, karena sistem dan banyak komponen pihak ketiga menggunakan RPC secara internal, dan antarmuka tersebut dapat membuat handel konteks. Ketika atribut strict_context_handle digunakan, run time RPC memastikan bahwa konteks yang dibuat pada satu antarmuka dapat diteruskan sebagai argumen hanya untuk metode antarmuka tersebut.

Dalam situasi di mana aplikasi dikembangkan untuk Windows Vista, penggunaan type_strict_context_handle tersedia dan direkomendasikan. Handel konteks tidak dikaitkan dengan jenis tertentu secara default. Ketika beberapa jenis handel konteks digunakan dalam proses yang sama, klien berbahaya dapat meneruskan handel konteks sebagai pengganti yang lain untuk menghasilkan hasil yang tidak diinginkan. Penggunaan type_strict_context_handle memungkinkan aplikasi untuk memberlakukan konsistensi jenis handel konteks dan mencegah penggunaan jenis handel konteks yang tidak cocok.