7个版本
0.1.7 | 2023年11月20日 |
---|---|
0.1.6 | 2023年5月4日 |
0.1.5 | 2022年12月22日 |
0.1.4 | 2022年11月16日 |
0.1.0 |
|
#1662 in 过程宏
每月20,509次下载
在 2 个crate中使用 (通过 veil)
40KB
773 行
一个派生宏,用于为具有某些字段被红化的结构体或枚举变体实现 std::fmt::Debug
。
该宏的目的是允许在结构体和枚举变体中轻松、可配置且高效地红化敏感数据。这可以用于在日志或其他任何不应暴露或存储个人数据的地方隐藏敏感数据。
使用方法
添加到您的Cargo.toml
[dependencies]
veil = "0.1.7"
使用文档可以在此处找到。
示例
示例的详细解释在此。
#[derive(Redact)]
struct CreditCard {
#[redact(partial)]
number: String,
#[redact]
expiry: String,
#[redact(fixed = 3)]
cvv: String,
#[redact(partial)]
cardholder_name: String,
}
#[derive(Redact)]
#[redact(all, variant)]
enum CreditCardIssuer {
MasterCard,
Visa,
AmericanExpress,
}
#[derive(Redact)]
#[redact(all, partial)]
struct Vehicle {
license_plate: String,
make: String,
model: String,
color: String,
}
#[derive(Debug)]
struct Policy {
id: Uuid,
name: String,
description: String,
}
#[derive(Redact)]
enum InsuranceStatus {
#[redact(all, partial)]
Insured {
#[redact(fixed = 12)]
policy: Policy,
policy_started: String,
policy_expires: String,
#[redact(skip)]
payment_card: CreditCard,
#[redact(skip)]
vehicles: Vec<Vehicle>,
},
Uninsured {
policies_available: Vec<Policy>,
},
}
环境感知
在测试环境中,可能需要完全禁用红化。您可以通过启用非默认功能标志 toggle
并
- 将环境变量
VEIL_DISABLE_REDACTION
设置为 "1"、"true" 或 "on"(不区分大小写)来在运行时全局禁用Veil的红化行为。
或者
- 调用
veil::disable
函数。请参阅此 示例。
出于安全考虑,这些仅在第一次检查。
依赖关系
~295–750KB
~18K SLoC