当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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