IRONSOFTWAREHOME
产品比较

探索在.NET中QuestPDF水印的最佳替代方案

Curtis Chau
Curtis Chau
Updated: 2026年7月5日

用户向您的门户上传一个PDF,而您不了解其内容。 IronPDF通过将文件转换为图像然后返回进行清理,剥离嵌入的JavaScript、活动对象、按钮和元数据,然后重建一个干净的文档。 Cleaner 类公开了 SanitizeWithBitmapSanitizeWithSvg 以进行清理,以及 ScanPdf 以检测威胁。 一种权衡决定了选择:位图更彻底但丧失文本可搜索性,而SVG保持可搜索但布局可能漂移。 您在为安全性交换忠实度,并决定多少。

从不可信来源消除PDF威胁

任何接受上传PDF的应用程序(如门户网站、申请追踪器、索赔系统)可以清理传入的文件,以防止嵌入的脚本和活动内容到达查看器:

using IronPdf;

var pdf = PdfDocument.FromFile("upload.pdf");
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf");

处理前扫描

ScanPdf 根据默认的YARA规则集(或自定义规则集)检查文件,并报告是否发现任何危险,以便管道可以在存储或打开之前进行隔离或拒绝:

var pdf = PdfDocument.FromFile("upload.pdf");
CleanerScanResult result = Cleaner.ScanPdf(pdf);

if (result.IsDetected)
{
    // quarantine: result.Risks holds the detections
}

它检测嵌入的JavaScript漏洞、可疑的表单操作、隐藏内容、已知的漏洞模式以及未授权的嵌入文件。 请注意,ScanPdf 只能检测; 清理是通过 SanitizeWith 方法完成的。

增强云部署的文件安全性

在文件进入无服务器或共享环境(如Azure、AWS Lambda)之前去除活动内容可以减少攻击面。 在进入时进行净化,而不是在文件已经在敏感位置运行后进行。

共享前去除元数据

因为文档是从图像重建的,隐藏的作者姓名、修订痕迹和其他元数据不会保留。在发布或将文件发送到组织外部之前非常有用。

创建清晰的基线以便签名或存档

在数字签名或PDF/A存档之前进行净化,可以为您提供一个无脚本的起点。 您很少希望证明或保存携带活动内容的文档几十年。

需要时保留文本

当下游步骤需要文字(搜索、索引、可访问性、提取)时,使用SVG:它去除了活动层,同时保持PDF可搜索,接受可能的布局漂移。

净化不能做什么

净化不是编辑。 它去除隐藏和活动威胁,而不是可见信息。 姓名、帐号以及人眼可以阅读的任何信息都完整保留。 要去除敏感内容,这是错误的工具; 使用编辑功能。

还有位图输出是图像。 它是不可搜索且无法访问的:屏幕阅读器无法从中获取任何信息,这与可访问性目标如PDF/UA相冲突。 仅在最大安全性超过可搜索性时使用位图,并在需要保留文本时使用SVG。

将其视为安全步骤

净化属于您的安全层,而不是格式化层。 在任何您未自己生成的内容上运行,先扫描,保留原件,并根据文本是否需要保留选择位图或SVG。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户