本文簡要介紹rust語言中 std::os::windows::fs::OpenOptionsExt.security_qos_flags
的用法。
用法
fn security_qos_flags(&mut self, flags: u32) -> &mut Self
將調用 CreateFile2
的 dwSecurityQosFlags
參數設置為指定值(或將其與 custom_flags
和 attributes
組合以將 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 OpenOptionsExt.share_mode用法及代碼示例
- Rust OpenOptionsExt.custom_flags用法及代碼示例
- Rust OpenOptionsExt.access_mode用法及代碼示例
- Rust OpenOptionsExt.mode用法及代碼示例
- Rust OpenOptionsExt.attributes用法及代碼示例
- Rust OpenOptions.append用法及代碼示例
- Rust OpenOptions.new用法及代碼示例
- Rust OpenOptions.create用法及代碼示例
- Rust OpenOptions.write用法及代碼示例
- Rust OpenOptions用法及代碼示例
- Rust OpenOptions.open用法及代碼示例
- Rust OpenOptions.create_new用法及代碼示例
- Rust OpenOptions.truncate用法及代碼示例
- Rust OpenOptions.read用法及代碼示例
- Rust Option.unwrap_or_default用法及代碼示例
- Rust Option.as_deref_mut用法及代碼示例
- Rust Option.get_or_insert_with用法及代碼示例
- Rust Option.iter_mut用法及代碼示例
- Rust Option.or_else用法及代碼示例
- Rust Option.unwrap_unchecked用法及代碼示例
- Rust Option.get_or_insert用法及代碼示例
- Rust Option.expect用法及代碼示例
- Rust Option.get_or_insert_default用法及代碼示例
- Rust Option.insert用法及代碼示例
- Rust Option.map_or用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::os::windows::fs::OpenOptionsExt.security_qos_flags。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。