Tips & Tricks

如何從 PDF 中刪除隱藏腳本和自動化

PDF 可以包含可執行程式碼。當文件開啟、翻頁、表單欄位取得焦點時執行的 JavaScript。無需使用者互動即可觸發的自動操作。啟動外部應用程式的隱藏物件。大多數 PDF 都不包含這些內容。當這樣做時,它通常是合法的:自動計算總數的表單、基於使用者輸入進行導航的互動式文件、自動推進投影片的簡報。但腳本和自動化也可能是惡意的,被那些希望文件執行收件人不期望的操作的人隱藏起來。

從 PDF 中刪除隱藏腳本和自動化是一項安全預防措施,在完全開啟來自不受信任或未知來源的任何文件之前,以及您準備與可能使用較舊或安全性較低的 PDF 閱讀器的收件人共享的任何文件時,應應用該預防措施。一旦您知道腳本可以隱藏在哪裡,刪除過程就很簡單。

根據 SonicWall 的 2025 年威脅報告,基於 PDF 的惡意軟體攻擊在 2023 年至 2025 年間增加了 42%,其中嵌入式 JavaScript 是最常見的攻擊媒介(SonicWall,“網路威脅報告”,2025 年)。大多數攻擊的目標是使用過時的 PDF 閱讀器(自動執行嵌入腳本)的使用者。威脅是真實存在的,緩解措施也很簡單:在腳本執行之前將其刪除。

How to Remove Hidden Scripts and Automation From a PDF

腳本和自動化隱藏在 PDF 中的位置

腳本可以附加到 PDF 結構中的多個位置。每個位置都是一個單獨的藏身之處,必須單獨檢查和清潔。下表列出了常見位置以及每個位置中通常出現的自動化類型。

位置觸發事件典型合法使用惡意風險
文件級文件開啟、文件關閉、文件保存、文件列印顯示歡迎訊息、驗證開啟的文件、追蹤文件列印時間高:開啟文件後,在使用者看到任何內容之前,腳本立即執行
頁面級頁面開啟、頁面關閉、頁面可見顯示特定頁面時觸發動畫或過渡Medium:當使用者導航到特定頁面時執行
表單欄位級視場聚焦、視野模糊、視野變化、視野驗證、視野計算自動計算總計、驗證輸入格式、自動格式化輸入的數據Medium:在正常形式互動期間執行;可以擷取擊鍵或修改輸入的數據
連結層連結點擊、按鈕按下、滑鼠進入、滑鼠退出導航至 URL、提交表單資料、顯示或隱藏內容低:需要使用者互動才能觸發;可能會定向到惡意 URL
WukongPDF

嘗試保護 PDF

無需安裝。直接在您的瀏覽器中工作。

立即開始 →

在處理之前檢測腳本

在可以顯示嵌入腳本的閱讀器中開啟 PDF。 Adobe Acrobat Pro 包含一個 JavaScript 編輯器,可列出文件中的所有腳本及其位置和觸發事件。大多數基於瀏覽器的 PDF 閱讀器不會執行腳本,這會在查看期間保護您的設備,但也不會顯示它們,這意味著您無法審核存在哪些腳本。如果您無法存取腳本審核工具,則假設來自不受信任來源的任何 PDF 都可能包含腳本。最安全的方法是主動刪除所有腳本,而不是嘗試確定每個腳本是否是良性的。您無法識別的腳本應被視為潛在惡意腳本。

對於未知腳本的PDF安全原則是刪除,而不是評估。刪除良性腳本的成本(通常是失去某些互動功能)遠低於允許惡意腳本執行的成本。

使用基於瀏覽器的清理刪除腳本

將 PDF 上傳到基於瀏覽器的工具,該工具提供扁平化、清理或安全清理功能。這些操作刪除所有互動元素:腳本、表單欄位邏輯、嵌入操作和連結。輸出是靜態 PDF,顯示相同的視覺內容,但不包含可執行程式碼。下載清理後的檔案並透過在支援腳本的閱讀器中開啟它來進行驗證,確認不存在任何腳本。 WukongPDF 處理 PDF 而不執行嵌入腳本。 Fix PDF平台在處理過程中移除互動元素,產生乾淨的靜態輸出。

防止在您建立的文件中引入腳本

從創作應用程式將文件匯出為 PDF 時,請檢查與互動元素相關的選項的匯出設定。停用 JavaScript、巨集和嵌入操作,除非它們服務於接收者期望的特定、記錄的目的。自動計算總計的表單應僅包含計算腳本。簡報 PDF 不應包含收件者無法控制的自動操作。您分發的任何 PDF 的預設內容應該是沒有可執行程式碼的靜態內容。腳本和自動化應該是選擇加入,而不是選擇退出。

PDF 工具 的腳本衛生方法與任何安全實踐相同:預設為最安全的配置,並且僅在必要且收件人期望時添加互動性。不含腳本的 PDF 是無法執行惡意程式碼的 PDF。

區分良性自動化和惡意程式碼

PDF 中的大多數腳本都不是惡意的。自動計算行項目總計的表單、驗證特定欄位輸入格式的文件或基於使用者互動進行導覽的簡報都使用合法的自動化。當您缺乏審計程式碼的工具或專業知識時,挑戰在於將這些腳本與惡意腳本區分開來。實用的啟發式方法:如果腳本的行為是可見且可預測的,例如產生可以驗證的值的計算或回應有意點擊的導航操作,則它可能是良性的。如果從文件的可見行為來看腳本的目的並不明顯,如果它觸發了使用者無法控制的事件,或者如果它嘗試存取外部資源,則需要將其刪除。如有疑問,請刪除並接受功能損失作為安全成本。

對於您定期從相同來源收到的文檔,例如來自已知供應商的每月發票或每週報告,請逐步建立信任。在啟用腳本刪除的情況下處理第一個文件。檢查輸出是否缺少功能。如果文件在沒有腳本的情況下正常運作,請繼續從該來源的後續文件中刪除它們。如果文件失去了基本功能(例如不再計算總計的表單),請識別提供該功能的特定腳本並將其列入白名單,同時刪除其他腳本。隨著時間的推移,您將開發特定於來源的腳本策略,以平衡安全性與功能。

PDF 腳本防毒掃描的局限性

防毒軟體可以透過簽章匹配來偵測已知的惡意腳本,但這種方法有很大的限制。基於簽章的偵測僅擷取與已知惡意軟體模式相符的腳本。新的或自訂的惡意腳本將不會被偵測到。防毒軟體也可能標記與惡意軟體共享表面級特徵的良性腳本,從而產生誤報。依賴防毒掃描作為唯一的腳本檢測方法會產生錯誤的安全感。對於來自不受信任來源的 PDF,最安全的方法是刪除腳本,而不是評估腳本。刪除良性腳本的代價是失去一些互動功能。允許惡意腳本逃避檢測的成本可能要高得多。

WukongPDF

嘗試保護 PDF

無需安裝。直接在您的瀏覽器中工作。

立即開始 →