問題描述

初步情況

對於正在設置的網站,我正在研究保護上傳/下載的整個領域,並根據用户角色/功能限制對它們的訪問。當然,我已經閲讀過一些以前關於這個 (一般的) 主題的問題,作為參考原因,我發現最重要/有趣的:

補充説明

一般來説,增加 WordPress 安裝的安全性並不是一個壞主意 – 例如保護您的 wp-config.php – 有很多事情可以和應該做。有很多信息在那裏如何做到這一點。我在這個問題的上下文中主要關注我的上傳/下載。

WordPress 上傳沒有保護,每個人都可以瀏覽 uploads 文件夾,除非你使用.htaccess 來防止它:

Options All -Indexes

.htaccess 文件必須放在 uploads 文件夾中。但是,這並不是真的保護他們,它只是使得更難找到文件。此外,您可以防止 hotlinking,根本上限制了基於 referrer 的訪問 – 雖然這有點不同,我以為我提到它,我不是進一步闡述,你可以找到大量的信息。

當然有可能使私人信息發佈或使用合適的模板文件創建自定義信息類型,以使該信息類型為私有,但這並不保護您的文件。可以這樣説,用 is_user_logged_in()is_admin()等條件包裝文件。

在旁註中有很多插件,有希望使您的文件安全和受保護,但其中許多隻是假裝這樣做,其中的一些原因在上面。我只是在想,因為我很確定它是不知道的每個小孩 – 所以,請注意。

Objective

我的意圖是能夠限制訪問 (一些) 上傳和分別下載。為了確保沒有人可以訪問他們,而不是偶然地,或者有人知道文件名,這些文件應該是非常私密和安全的。畢竟只有某些人才有權無障礙。

此外,我沒有必要將整個網站私有化,確實會適得其反 – 用於公開演示。更多的我想要的解決方案是容易使用的,因為一些工作的人不完全是計算機專家,因為通常情況。

Question

因此,問題是,是否有 (相對) 簡單的方法來限制訪問 (某些) 上傳和相應的下載?像我一樣,這意味着一種真正保護和保護他們的方式?

最佳解決方案

我在此回答我自己的問題,因為我找到了一個解決方案,但我對你的意見很感興趣。或者也許你有一個更好的解決方案,如果是這樣,我真的很想在這裏。

研究成果

我的研究成果是:1. 獲取文件外的文件根,www 文件夾; 2. 不允許直接訪問包含文件的文件夾; 讓腳本處理對文件的請求; 這些要點的來源至少主要包括在我的問題中。

解決方案

  1. 我安裝了插件»wp-downloadmanager«

    • 將在 wp-content 內創建一個名為 files 的文件夾,

  2. 我將.htaccess 文件添加到新的 files 文件夾中:

    • .htaccess 的含量:Options All -Indexes Order Deny,Allow Deny from all

  3. 我改變了插件的一個重要選項:

    • 選項我的意思是 download method;

    • 我改為 output file;

  4. 我通過插件界面添加了一些文件:

    • 有一個選項叫做 allowed to download;

    • 這允許基於用户角色/能力限制訪問;

  5. 我做了一些測試:

    • 不直接訪問文件 – 不是通過地址欄或 wget;

    • 公共下載可以通過他們的永久鏈接 – 我選擇» 不錯的永久鏈接:是 «和» 下載 url:文件 id«在選項面板 – 地址欄/wget 也在工作;

    • 受保護的受限制的下載只有以具有正確角色/功能的用户身份登錄時才能訪問;

結語

我認為這個解決方案非常符合研究成果。除了將文件放在外面。但限制訪問/保護目錄,並讓腳本處理文件請求已滿。訪問限制由.htaccess 處理,此時的腳本是插件 wp-downloadmanger

補充説明

  • download method 更改為 output file 是絕對必要的

  • 當然,.htaccess 文件是必須的

  • 檢查插件佔用腳本的角色的事實,看看 wp-downloadmanger.php – 關於第 207 到 227 行 (1.6.1 版); 這是對鏈接信息的補充

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。