Strict 和 Type Strict 內容句柄
針對所有內容句柄使用 strict_context_handle 屬性。 根據預設,內容句柄不會與介面相關聯,這表示可以在一個介面上建立內容句柄,然後傳遞至另一個介面。 這是一個容易的攻擊,許多 RPC 伺服器無法防止它。
如果兩個介面共存在同一個進程中,攻擊者可以在一個介面上開啟內容句柄,並將它傳遞給另一個介面,這可能會對未預期的數據進行訪問。 許多開發人員認為其軟體是程式中唯一的介面,但通常情況並非如此,因為系統與許多第三方元件都在內部使用 RPC,而且這些介面可以建立內容句柄。 使用 strict_context_handle 屬性時,RPC 運行時間可確保在一個介面上建立的內容只能當做自變數傳遞至該介面的方法。
在針對 Windows Vista 開發應用程式的情況下,可以使用並建議使用 type_strict_context_handle。 內容句柄預設不會與特定類型相關聯。 在同一個進程中使用多種內容句柄類型時,惡意用戶端可能會傳遞內容句柄來取代另一種內容句柄,以產生不想要的結果。 使用 type_strict_context_handle 可讓應用程式強制執行內容句柄類型一致性,並防止任何不相符的內容句柄類型使用方式。