問題描述
初步情況
對於正在設定的網站,我正在研究保護上傳/下載的整個領域,並根據使用者角色/功能限制對它們的訪問。當然,我已經閱讀過一些以前關於這個 (一般的) 主題的問題,作為參考原因,我發現最重要/有趣的:
補充說明
一般來說,增加 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. 不允許直接訪問包含檔案的資料夾; 讓指令碼處理對檔案的請求; 這些要點的來源至少主要包括在我的問題中。
解決方案
-
我安裝了外掛»wp-downloadmanager«
-
將在
wp-content內建立一個名為files的資料夾,
-
-
我將
.htaccess檔案新增到新的files資料夾中:-
.htaccess的含量:Options All -IndexesOrder Deny,AllowDeny from all
-
-
我改變了外掛的一個重要選項:
-
選項我的意思是
download method; -
我改為
output file;
-
-
我透過外掛介面新增了一些檔案:
-
有一個選項叫做
allowed to download; -
這允許基於使用者角色/能力限制訪問;
-
-
我做了一些測試:
-
不直接訪問檔案 – 不是透過位址列或 wget;
-
公共下載可以透過他們的永久連結 – 我選擇» 不錯的永久連結:是 «和» 下載 url:檔案 id«在選項面板 – 位址列/wget 也在工作;
-
受保護的受限制的下載只有以具有正確角色/功能的使用者身份登入時才能訪問;
-
結語
我認為這個解決方案非常符合研究成果。除了將檔案放在外面。但限制訪問/保護目錄,並讓指令碼處理檔案請求已滿。訪問限制由.htaccess 處理,此時的指令碼是外掛 wp-downloadmanger 。
補充說明
-
將
download method更改為output file是絕對必要的 -
當然,
.htaccess檔案是必須的 -
檢查外掛佔用指令碼的角色的事實,看看
wp-downloadmanger.php– 關於第 207 到 227 行 (1.6.1 版); 這是對連結資訊的補充
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。