發現.net中QuestPDF水印的最佳替代方案
使用者上傳了一個PDF到您的入口網站,您不知道裡面是什麼。 IronPDF通過將該文件轉換為圖像並返回,去除內嵌JavaScript、活動物件、按鈕和元資料來淨化該文件,然後重建一個乾淨的文件。 該ScanPdf用於檢測威脅。 一個交換條件決定了選擇:位圖更加徹底,但失去了文字可搜索性,而SVG則保持可搜索,但佈局可能會漂移。 您的選擇相當於將確定性換成安全性,與決定多少。
去除來自不受信任來源PDF的威脅
任何接受上傳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
}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。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。