跳转至

安全

只有PyPI上的最新版本会获得安全修复。

报告漏洞

请通过GitHub Security Advisories 私密报告漏洞,不要创建公开Issue。我们会争取在一周内首次响应。

处理不受信任的PDF

pylopdf由Rust编写且没有运行时依赖,但解析恶意PDF输入仍然存在固有风险。

明确设置解压预算

请向pylopdf.open()传入max_decompressed_size=。pylopdf会在返回Document前 检查每个可读取的流,包括原本会由渲染器延迟解压的页面内容。

import pylopdf

with pylopdf.open("upload.pdf", max_decompressed_size=128 * 1024 * 1024) as doc:
    preview = doc[0].get_pixmap(dpi=144)
  • 图像流按解码后的RGBA大小限制。
  • 启用限制后,无法安全计算输出上限的过滤器链会被拒绝。
  • 每页渲染上限为6400万像素。
  • 嵌入JavaScript在设计上不受支持,也绝不会执行。
  • 批量处理不受信任的文件时,尽量在sandbox或container中运行。

依赖审计

CI会在每次push时运行cargo audit,使用RustSec漏洞数据库审计Rust依赖树。

本政策在仓库中的正本为 SECURITY.md