如何在 Collabora Online 程式碼中限製檔案匯出選項

若要限制 Collabora Online CODE 中的檔案匯出,請讓 WOPI 主機DisableExport: true在其CheckFileInfo回應中傳回受影響的檔案和使用者資訊。同時HideExportOption: true,也要從編輯器選單中移除「下載為」指令。第一個屬性禁用 Collabora 後端的匯出功能;第二個屬性控制可見性。僅設定可見性標誌並不構成存取控制措施。

CODE 是文檔編輯器。在標準整合中,單獨的 WOPI 主機(例如 Nextcloud、ownCloud 或自訂應用程式)儲存原始文件,並向 Collabora 提供文件元資料和權限。因此,匯出權限通常在主機整合中配置,而不是在 Collabora 容器中作為通用開關進行配置coolwsd.xml。

序列圖顯示了 Collabora Online 向 WOPI 主機請求 CheckFileInfo 並接收匯出權限欄位。
Collabora Online 向 WOPI 主機要求文件資訊;主機回應可能包含該文件會話的匯出限制。

選擇與操作相符的控件

WOPI 財產或控制權它的作用何時使用
HideExportOption隱藏檔案選單中的「下載為」。作為後端強制執行的補充,這樣使用者就不會看到不可用的命令。
DisableExport停用 Collabora 的匯出功能,並意味著HideExportOption。應該阻止從開啟的文件中匯出特定文件或會話。
UserCanNotWriteRelative告知主機使用者無法透過 WOPI 儲存關聯文件或使用「另存為」功能建立副本。主機必須拒絕該請求。必須阻止透過編輯器另存為或建立副本。
DisablePrint停用 Collabora 後端的列印功能,這表示列印選項已被隱藏。只有當列印也受到限制時,它才與匯出分開。

前兩個欄位僅用於阻止 Collabora 的「下載為/匯出」功能。只有當您的策略也涵蓋其他操作時,才新增其他控制項。選單項目缺失本身並不能證明下載已被阻止。

決定限制條件的適用範圍

首先確定儲存檔案並在 Collabora 中開啟該檔案的應用程式。在 WOPI 術語中,該應用程式稱為主機。 Collabora 會呼叫主機的CheckFileInfo端點來取得檔案資訊和權限。主機知道是誰打開了文檔,以及共享、帳戶或文件策略是否允許下載。

  • Nextcloud 或其他整合文件平台:如果您的已安裝版本提供「隱藏下載」或類似策略,請使用其支援的共用或安全性檢視設定。整合功能可以將該策略轉換為 WOPI 權限。在確定平台會阻止哪些匯出、列印、複製或直接下載路徑之前,請務必查看實際的主機回應或平台的最新文件。
  • 您自己的 WOPI 主機:更新建置 JSON 回應的程式碼CheckFileInfo。根據已認證使用者的權限和檔案共用策略計算限制。
  • CODE容器管理員無法控制主機:請聯絡主機管理員或整合開發人員強制執行此操作。僅編輯CODE容器可能會隱藏介面上的某些可選格式,但無法提供基於檔案的WOPI權限策略。

Collabora 目前的原始碼配置將其描述extra_export_formats為介面層級的選項:停用這些可選格式只會將其隱藏起來。請勿將此設定視為伺服器端匯出強制執行。它僅用於格式選單的顯示,而非替代主機權限。

在自訂 WOPI 主機中設定匯出權限

1. 找到 CheckFileInfo 回應處理程序

找到回應 Collabora WOPI 請求的路由GET /wopi/files/{id}。確認它如何驗證存取令牌,並將該令牌對應到目前使用者和檔案。不要信任瀏覽器提供的標誌,除非?disableExport=true主機根據其自身的授權規則對其進行驗證。

2. 根據東道主的政策做出決定

使用伺服器端存取控制資料來決定此人是否可以匯出此文件。文件擁有者、內部編輯者和公共連結檢視者可能擁有不同的權限。如果限制僅針對單一共享,則應根據該共享的策略來確定權限,而不是使用可能意外影響所有使用者的全域環境變數。

範例偽代碼將文件存取策略對應到 DisableExport、HideExportOption 和 UserCanNotWriteRelative。
範例偽代碼:從文件和使用者的實際存取策略中匯出 WOPI 標誌,而不是全域設定一個使用者的選擇。

3. 返回布爾 WOPI 字段

將兩個布林欄位新增至 JSON 回應。這是一個需要合併到現有完整CheckFileInfo回應中的片段,而不是替換其必需的檔案和使用者屬性:

JSON 編輯器顯示 HideExportOption、DisableExport 和 UserCanNotWriteRelative 都設定為 true。
CheckFileInfo 權限欄位範例。僅當主機也拒絕相對保存請求時才設定「另存為」屬性。
{
  "BaseFileName": "budget.xlsx",
  "Size": 48123,
  "UserId": "viewer-42",
  "OwnerId": "team-7",
  "UserCanWrite": false,
  "HideExportOption": true,
  "DisableExport": true
}

保留整合已提供的常規必填欄位和功能標誌。使用 JSON 布林值,true而false不是字串,例如 ` "true"true` 或 `false` "1"。如果允許導出,則根據您的整合和 Collabora 版本支援的行為,傳回 `false` 或省略可選屬性。

4. 如果策略要求,則單獨阻止「另存為」操作

匯出到本機格式和將副本儲存回 WOPI 主機是不同的操作。如果使用者無法透過編輯器建立「另存為」副本,則應返回UserCanNotWriteRelative: true並讓主機拒絕相應的相對寫入要求。不要假設此操作DisableExport會封鎖所有副本或儲存路徑。同樣,DisablePrint: true僅當列印操作包含在策略中時才應包含此操作。

Collabora 風格的「檔案」選單中缺少「下載」選項,而附近的 WOPI 權限卡顯示「UserCanNotWriteRelative」已啟用。
選單模型省略了「下載為」;「另存為」是單獨的操作,當不允許相對保存時,WOPI 主機必須拒絕該操作。

在整合平台中應用等效設置

當 Nextcloud 管理檔案和共用時,侵入性最小的方案是使用其自身支援的隱藏下載或安全檢視權限(如果該共用類型和版本支援)。目前的 Nextcloud Richdocuments 原始碼將主機端的隱藏下載策略對應到 Collabora 的字段,DisableExport以及HideExportOption列印和複製限制。管理員可存取的特定控制項可能會因 Nextcloud 版本、發行版和共用類型而異,因此請確認已安裝產品的行為,而不是將自訂 WOPI 修補程式複製到其應用程式檔案中。

如果您維護的是不同的 WOPI 主機,請在其 CheckFileInfo 回應中實作對應的欄位。避免修改 Collabora 產生的容器配置以新增未記錄的鍵:WOPI 回應用於傳遞每個檔案的權限資訊。主機程式碼變更後,請使用該應用程式的正常發佈流程進行部署。通常情況下,重新啟動 Collabora 不會改變主機產生的權限決策;請關閉並重新開啟文件以取得最新的 CheckFileInfo 回應。

驗證限制是否有效

  1. 使用應受限制的帳戶開啟測試文件。
  2. 檢查應用程式日誌或安全開發追蹤中的 WOPI 主機 CheckFileInfo 回應。確認這兩個欄位均為 JSON 布林值,且在此會話中均設為 true。
  3. 在 Collabora 中,檢查「下載為」選項是否缺失,並測試相關的匯出操作。初步驗證期間請勿使用真實的機密文件。
  4. 如果「另存為」操作也應該被阻止,請測試主機端的相對寫入請求是否被拒絕。即使主機拒絕了該操作,選單項目也可能仍然可見。
  5. 開啟一個單獨的、具有匯出權限的文件。確認此變更未意外停用所有使用者或檔案的匯出功能。
  6. 請單獨測試從儲存平台直接下載。 Collabora 的匯出標誌不會自動撤銷使用者從 Nextcloud、ownCloud、WebDAV 或其他主機端點下載原始檔案的權限。

如果命令仍然可見,請確認回應是針對您測試的文件和用戶,重新開啟文件以建立新的會話,並驗證主機是否確實發送了訊息HideExportOption。如果按鈕消失,但匯出仍然可以透過其他途徑進行,請檢查是否DisableExport確實如此,並確認該操作確實是 Collabora 匯出,而不是儲存主機提供的下載或特定於整合的 postMessage 處理程序。

安全限制和實用建議

這些設定控制 Collabora 支援的匯出和儲存操作;它們無法阻止能夠查看文件的使用者截圖、拍照或手動複製應用程式允許他們查看的資訊。 Collabora 也必須接收文件內容才能進行渲染。為了更有效地控制數據,請將編輯器限制與文件託管方的下載授權、存取權杖範圍、共用策略、稽核日誌以及任何組織核准的浮水印或資料遺失防護措施結合。將結果描述為限制支援的匯出路徑,而不是使可見內容無法複製。

對於大多數 CODE 安裝,請使用DisableExport主機HideExportOption產生的 WOPI CheckFileInfo 回應,並將範圍限定於適用的使用者和文件。強制要求在主機上直接下載和另存為,並在部署後驗證受限會話和允許會話。

參考

留下評論

修復程式碼文件編輯工作階段在 10 分鐘後斷開連線的問題

修復程式碼文件編輯工作階段在 10 分鐘後斷開連線的問題

檢查 WebSocket 逾時、代理規則、入口設定和 CODE 日誌,排查 Collabora Online CODE 會話在大約 10 分鐘後斷開連線的問題。

如何在 Collabora Online 程式碼中限製檔案匯出選項

如何在 Collabora Online 程式碼中限製檔案匯出選項

透過 WOPI CheckFileInfo 限制 Collabora Online 程式碼匯出。了解何時使用 DisableExport、HideExportOption 以及單獨的主機端下載控制。

如何自訂 CODE 使用者介面並隱藏特定工具列

如何自訂 CODE 使用者介面並隱藏特定工具列

了解如何透過 WOPI PostMessage API 在 CODE 中切換緊湊視圖和選項卡視圖、折疊筆記本欄以及隱藏特定選項卡或命令。

如何為 Collabora CODE 容器設定 SSL 終止

如何為 Collabora CODE 容器設定 SSL 終止

為 Collabora CODE 在 Nginx 後設定 SSL 終止,包括 Docker 設定、WebSocket 代理、驗證檢查和故障排除指南。

限制編輯以保護 Word 2010 文件

限制編輯以保護 Word 2010 文件

保護您的重要文件免受任何外部來源的侵害將非常有益。有時在撰寫文件時,迫切需要

Access 2010:建立資料庫表之間的關係

Access 2010:建立資料庫表之間的關係

關係型資料庫管理系統(如 Access 2010)的優點之一是可以輕鬆設定具有約束的表和關係,以使

MS Access 2010:使用 IFF 函數查詢

MS Access 2010:使用 IFF 函數查詢

在 MS Access 中,如果指定條件的計算結果為 TRUE,則 IIF 函數傳回一個值;如果計算結果為 FALSE,則傳回另一個值。 IIF 函數

Microsoft Word 2010 間距

Microsoft Word 2010 間距

間距在建立文件時非常重要,因為它會影響文件的外觀和呈現效果。您可以輕鬆增加或減少

Office Excel 2010 圖表與圖形

Office Excel 2010 圖表與圖形

圖表和圖形是呈現數據的絕佳方式。 Microsoft Excel 2010 提供幾乎所有類型的圖表,並簡化了繪製流程,以便

匯出/匯入功能區和快速存取工具列設定 [Office 2010]

匯出/匯入功能區和快速存取工具列設定 [Office 2010]

Microsoft Office 套件應用程式提供了最簡單的方法來自訂功能區、標籤和快速存取工具欄,但如果您需要安裝新的