.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は、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。