一份有時間限制的商業文件、一份明確在 30 個日曆日內有效的提案、一份在審查期結束後就無法訪問的機密董事會報告、一份訂閱一年的許可培訓手冊,一旦作為標準的不受保護的 PDF 分發,就失去了基於時間的訪問控制的每一絲痕跡。今天打開它的收件人可以在下個月重新打開它。他們可以在明年重新開放。五年後他們仍然可以打開並閱讀每個單字。標準 PDF 格式沒有內建的按時間順序排列的概念,也沒有在定義的日期後自動過期的本機機制。
標準 PDF 文件被設計為永久、不可變的記錄。建立一個在特定日曆日期後主動強制其過期的文件需要實現超出核心 PDF 規範的額外邏輯層,並引入限製文件可移植性和可靠性的依賴項。
製作強制自動過期的PDF安全文件意味著要么實施基於JavaScript的日期驗證例程,該例程在文件打開時執行並根據硬編碼的截止日期檢查當前系統日期,要么部署基於伺服器的數位權限管理系統,在每次打開文件時遠端驗證訪問權限。 WukongPDF 的PDF 加密 工具支援標準的基於密碼的保護,以下的指南解釋了目前可用的每種過期方法及其重要的現實限制。

基於 JavaScript 的過期:技術實作與關鍵限制
Adobe Acrobat 和 Acrobat Reader 支援嵌入式 JavaScript 引擎,該引擎可在發生特定文件事件(包括顯示第一頁之前觸發的文件開啟事件)時執行自訂腳本。精心編寫的腳本可以向作業系統查詢當前日期,將該日期與腳本程式碼中嵌入的硬編碼到期截止日期進行比較,並執行以下兩個操作之一:如果當前日期在截止日期之前,則正常顯示文件並允許完全訪問,或者如果當前日期已超過截止日期,則顯示一條突出的消息,說明文件已過期並以編程方式關閉文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容文件,以防止用戶閱讀內容。
基於 JavaScript 的過期帶有多個嚴重漏洞,從根本上限制了其作為安全措施的有效性。這完全取決於收件者的 PDF 檢視器是否支援 JavaScript 執行並啟用了 JavaScript 功能。大多數非 Adobe PDF 檢視器(包括幾乎所有基於瀏覽器的檢視器和行動 PDF 應用程式)預設會停用 JavaScript 作為安全預防措施,這意味著過期腳本永遠不會執行,並且無論日曆日期如何,文件都可以完全存取開啟。即使在 Adobe Acrobat 中,任何使用者都可以導航到“編輯”、“首選項”、“JavaScript”,並透過點擊一個複選框來停用 JavaScript 執行,從而永久地破壞他們打開的每個文件中的所有基於 JavaScript 的保護。最關鍵的是,腳本從使用者自己的電腦系統時鐘讀取當前日期,使用者可以手動將其變更為任意日期。將電腦時鐘設定回截止日期之前的日期可以再次存取文檔,並且沒有任何技術機制可以阻止這種時鐘操作。
嘗試保護 PDF
無需安裝。直接在您的瀏覽器中工作。
數位權限管理:伺服器強制的基於時間的存取控制
Adobe 的 LiveCycle Rights Management、Microsoft 的 Azure 資訊保護和各種第三方文件安全服務等企業 DRM 平台在伺服器基礎架構層級強制執行過期操作,而不是依賴 PDF 檔案本身中嵌入的任何程式碼或邏輯。該文件使用儲存在 DRM 伺服器上(而不是文件內)的金鑰進行加密。每次使用者嘗試開啟文件時,檢視者都必須建立與 DRM 驗證伺服器的網路連接,提供使用者的憑證並接收臨時解密授權。伺服器使用自己獨立維護和安全的系統時鐘運行,根據文件的許可證參數檢查當前日期,並授予此會話的解密權限或透過到期通知拒絕它。
DRM 提供技術上真正的過期強制執行,不易受到客戶端時鐘操縱或 JavaScript 停用的影響。然而,它帶來了巨大的實際摩擦,使其不適合隨意或日常的文檔共享。收件人在想要開啟文件時必須具有有效的 Internet 連接,並且無法在任何離線環境中檢視該文件。他們必須擁有在保護文件的特定 DRM 平台上註冊的有效使用者帳戶。觀看體驗取決於 DRM 服務提供者的身份驗證伺服器的持續運行可用性,這引入了發送者和接收者都無法控制的外部依賴性。
提供有效到期且技術不複雜的實用替代方案
對於絕大多數常見的業務場景(文件應該具有明顯有限的使用壽命,但內容並不能證明完整 DRM 部署的費用和摩擦是合理的),技術過期的實用程式替代方案可提供足夠的現實世界保護,同時大大降低複雜性和零收件人摩擦。在每一頁上添加視覺上突出的封面頁或清晰可見的標題,以明確的語言明確說明文件的有效期:該提案自發布之日起有效期為 30 天,於 2025 年 12 月 31 日到期。到期是社會和合約而非技術,由持續的業務關係和專業規範而不是軟體鎖定強制執行。
發布明確編號和日期的修訂版本,明確取代所有先前的文檔,而不是試圖使原始版本神奇地消失。更新版本包含當前的權威訊息,並且是您主動引導所有收件者參考的版本。從技術上講,過時的版本仍然可以打開,但明確地標記為已被取代,並在每一頁上都帶有顯眼的對角線水印,上面寫著“已取代”,或者用粗體封面頁符號說明“此版本已被替換”。請參閱 2026 年 1 月 15 日的版本 2.1。無意中開啟舊版本的收件者會立即明確地看到它不再是目前文件。
| 有效期限方法 | 執行力度 | 被擊敗 |
|---|---|---|
| JavaScript 日期檢查 | 弱,完全依賴觀眾 | 禁用 JavaScript,更改系統時鐘 |
| DRM 伺服器強制執行 | 強大,伺服器控制每一次訪問 | 網路故障甚至會阻止授權用戶 |
| 封面頁有效性聲明 | 僅社會和契約 | 無技術強制,依賴接收者配合 |
| 帶有浮水印的替代版本 | 基於流程,直覺明顯 | 舊版本在技術上仍然可以訪問,但標記清晰 |
在 Acrobat 中設定 JavaScript 日期過期並充分了解限制
若要為 PDF 新增基於 JavaScript 的日期到期時間,同時保持對其安全限制的清晰認識,請在 Acrobat Pro 中開啟 PDF,導覽至“工具」選單,選擇“JavaScript”,然後選擇“文件 JavaScript”以開啟腳本編輯器。建立一個在文件開啟事件上執行的新腳本函數。此函數從 JavaScript Date 物件讀取目前系統日期,將其與硬編碼的到期日期字串進行比較,並使用帶有 Close 參數的 app.execMenuItem 函數,在當前日期超過截止日期時以程式設計方式關閉文件視窗。
在分發文件之前,請在系統時鐘已故意設定為未來日期的電腦上測試過期行為,以確認腳本在該電腦上正確觸發。然後在 Acrobat 的「首選項」中完全停用 JavaScript 來測試相同文檔,以直接觀察到過期機制在該情況下沒有提供保護。親身體驗這種限制對於準確地向所有文件利害關係人傳達過期機制可以保證什麼(更重要的是不能保證什麼)至關重要。
嘗試保護 PDF
無需安裝。直接在您的瀏覽器中工作。
