探索在.NET中QuestPDF水印的最佳替代方案
用户向您的门户上传一个PDF,而您不了解其内容。 IronPDF通过将文件转换为图像然后返回进行清理,剥离嵌入的JavaScript、活动对象、按钮和元数据,然后重建一个干净的文档。 Cleaner 类公开了 SanitizeWithBitmap 和 SanitizeWithSvg 以进行清理,以及 ScanPdf 以检测威胁。 一种权衡决定了选择:位图更彻底但丧失文本可搜索性,而SVG保持可搜索但布局可能漂移。 您在为安全性交换忠实度,并决定多少。
从不可信来源消除PDF威胁
任何接受上传PDF的应用程序(如门户网站、申请追踪器、索赔系统)可以清理传入的文件,以防止嵌入的脚本和活动内容到达查看器:
using IronPdf;
var pdf = PdfDocument.FromFile("upload.pdf");
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("upload.pdf");
Cleaner.SanitizeWithSvg(pdf).SaveAs("upload-clean.pdf");
Imports IronPdf
Dim 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
}
var pdf = PdfDocument.FromFile("upload.pdf");
CleanerScanResult result = Cleaner.ScanPdf(pdf);
if (result.IsDetected)
{
// quarantine: result.Risks holds the detections
}
Imports System
Dim pdf = PdfDocument.FromFile("upload.pdf")
Dim result As CleanerScanResult = Cleaner.ScanPdf(pdf)
If result.IsDetected Then
' quarantine: result.Risks holds the detections
End If
它检测嵌入的JavaScript漏洞、可疑的表单操作、隐藏内容、已知的漏洞模式以及未授权的嵌入文件。 请注意,ScanPdf 只能检测; 清理是通过 SanitizeWith 方法完成的。
增强云部署的文件安全性
在文件进入无服务器或共享环境(如Azure、AWS Lambda)之前去除活动内容可以减少攻击面。 在进入时进行净化,而不是在文件已经在敏感位置运行后进行。
共享前去除元数据
因为文档是从图像重建的,隐藏的作者姓名、修订痕迹和其他元数据不会保留。在发布或将文件发送到组织外部之前非常有用。
创建清晰的基线以便签名或存档
在数字签名或PDF/A存档之前进行净化,可以为您提供一个无脚本的起点。 您很少希望证明或保存携带活动内容的文档几十年。
需要时保留文本
当下游步骤需要文字(搜索、索引、可访问性、提取)时,使用SVG:它去除了活动层,同时保持PDF可搜索,接受可能的布局漂移。
净化不能做什么
净化不是编辑。 它去除隐藏和活动威胁,而不是可见信息。 姓名、帐号以及人眼可以阅读的任何信息都完整保留。 要去除敏感内容,这是错误的工具; 使用编辑功能。
还有位图输出是图像。 它是不可搜索且无法访问的:屏幕阅读器无法从中获取任何信息,这与可访问性目标如PDF/UA相冲突。 仅在最大安全性超过可搜索性时使用位图,并在需要保留文本时使用SVG。
将其视为安全步骤
净化属于您的安全层,而不是格式化层。 在任何您未自己生成的内容上运行,先扫描,保留原件,并根据文本是否需要保留选择位图或SVG。
常见问题解答
IronPDF是如何清理上传的PDF的?
IronPDF的Cleaner类将PDF转换为图像,并将其重建为一个干净的文档,去除嵌入的JavaScript、活动对象、表单按钮和元数据。使用Cleaner.SanitizeWithBitmap可获得最彻底的清理,或使用Cleaner.SanitizeWithSvg保留文字搜索功能。
SanitizeWithBitmap和SanitizeWithSvg之间有什么区别?
SanitizeWithBitmap将PDF呈现为像素图像并从中重建——这是最彻底的选项,但会生成无法搜索或访问的文档。SanitizeWithSvg删除活动内容层,而保留文字可搜索,但布局可能会略微偏移。
在处理之前,IronPDF能否扫描PDF中的威胁?
可以。Cleaner.ScanPdf依据默认或自定义的YARA规则集检查文件并返回CleanerScanResult,指示是否检测到威胁以及它们是什么。扫描只负责检测——需调用SanitizeWith方法来清理文件。
ScanPdf能检测到哪些威胁?
ScanPdf检测嵌入的JavaScript漏洞、可疑的表单动作、隐藏内容、已知的漏洞模式和未经授权的嵌入文件。
清理是否会删除如姓名或帐号等敏感的可见信息?
不会。清理移除的是隐藏和活动威胁,而不是可见内容。姓名、帐号和所有可读文字都会保留。要删除可见的敏感信息,请使用编辑——清理不是适合的工具。

