我构建了一个在发送前审计 PDF 文件的安全扫描器。以下是实现方法。[开发日志 #10]

发布日期:2026-04-24 10:02:30   浏览量 :3
发布日期:2026-04-24 10:02:30  
3

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

所有测试均在一台使用了八年的 MacBook Air 上运行。

你正准备通过电子邮件发送一份合同。它看起来干净无误。

但元数据中仍然隐藏着你的姓名、你计算机的主机名、原始作者的公司以及创建时间戳。收件人可以看到所有这些信息。

审计报告会在你点击发送之前捕获这些问题。

检查内容

每一份经过审计报告处理的 PDF 文件都会接受以下扫描:

  • 元数据泄露(作者、创建者、生产者、时间戳)
  • 隐藏文本层(在正常缩放比例下不可见的内容)
  • 嵌入的脚本或表单操作
  • 不应出现在干净文档中的非标准对象
  • 未正确移除的修订内容(像素级检查)

基于 Rust 语言的扫描流水线

pub struct AuditResult {
    pub metadata_warnings: Vec,
    pub hidden_content: Vec,
    pub suspicious_objects: Vec,
    pub risk_level: RiskLevel,
}

pub fn audit_pdf(doc: &Document) -> AuditResult {
    let mut result = AuditResult::default();

    // 1. 检查信息字典
    if let Ok(info) = doc.get_info() {
        for key in &["Author", "Creator", "Producer"] {
            if info.get(*key).is_some() {
                result.metadata_warnings.push(format!("{} field present", key));
            }
        }
    }

    // 2. 遍历所有对象以查找可疑内容
    for (id, object) in

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部