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