本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。