當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust OpenOptionsExt.security_qos_flags用法及代碼示例


本文簡要介紹rust語言中 std::os::windows::fs::OpenOptionsExt.security_qos_flags 的用法。

用法

fn security_qos_flags(&mut self, flags: u32) -> &mut Self

將調用 CreateFile2 dwSecurityQosFlags 參數設置為指定值(或將其與 custom_flagsattributes 組合以將 dwFlagsAndAttributes 設置為 CreateFile )。

默認情況下 security_qos_flags 未設置。打開命名管道時應該指定它,以控製服務器進程可以代表客戶端進程的程度(安全模擬級別)。

security_qos_flags 未設置時,惡意程序可以通過誘騙打開命名管道來打開用戶指定的路徑,從而獲得特權 Rust 進程的提升權限。所以可以說在打開任意路徑時也應該設置security_qos_flags。但是,這些位可能會與其他標誌衝突,特別是 FILE_FLAG_OPEN_NO_RECALL

有關可能值的信息,請參閱 Windows 開發人員中心站點上的Impersonation Levels。使用此方法時,會自動設置 SECURITY_SQOS_PRESENT 標誌。

例子

extern crate winapi;
use std::fs::OpenOptions;
use std::os::windows::prelude::*;

let file = OpenOptions::new()
    .write(true)
    .create(true)

    // Sets the flag value to `SecurityIdentification`.
    .security_qos_flags(winapi::SECURITY_IDENTIFICATION)

    .open(r"\\.\pipe\MyPipe");

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::os::windows::fs::OpenOptionsExt.security_qos_flags。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。