2013-06-29 117 views
0

我有基於WordPress的網站。只有登錄的用戶才能看到帖子,網站和文件(我使用s2member插件)。在Wordpress中安全上傳文件

我有禁止訪問文件的未登錄用戶的問題。

我上傳文件,附上文章。只有登錄的用戶才能看到帖子和附件。

問題是未登錄的用戶可以直接下載文件(例如http://my-site.pl/files/secret_file.pdf)。

我怎樣才能防止這個,一些插件,.htaccess?

我的網站是在共享主機我只能通過ftp訪問。

+0

共享主機會讓這個更難。你有權訪問位於Web根目錄之上的文件夾嗎? (即一個文件夾無法通過網絡訪問,但服務器可訪問) –

+0

沒有... :( 我把文件直接放到www文件夾中 – esio

回答

0

有潛在的解決方案,但沒有一個在實踐中脫穎而出 - 每個都有自己的一套荊棘。

有一些商業插件可以對部分或全部WP網站實施訪問限制。有些允許限制文件,有些則不允許。會員是該領域中較爲成熟的球員之一。 (但是我不能推薦他們的提議,在我遇到的其他問題中,它在多服務器設置上並不能很好地發揮作用。)自從我上次檢查以後,可能會有一些免費插件。

如果你決定自己編碼,有很多選項。其中三個包括:

  1. 使用php而不是Apache服務文件,並要求用戶在提供文件之前先登錄。有用。如果你決定要馬虎,那麼設置起來相對容易。如果你想正確設置它,並不是那麼容易:認爲需要恢復的部分文件等。

  2. 有條件地使用Apache來提供文件。實質上,您在令牌文件夾中創建用戶特定的文件,並且在用戶登錄時將該文件的名稱存儲爲cookie。然後,如果相應文件不存在於該文件中,則Apache重寫規則將拒絕訪問標記文件夾。這並不容易設置

  3. 根本不限制文件,並按照他們現在的方式:通向只有會員才能看到的公開文件的鏈接。這裏的理由是,無論你如何限制對你的pdf的訪問,如果一個心懷不滿的用戶決定分享,它最終會出現在某個洪流站點或某個下載站點。

0

.htacces中使用此項。這允許用戶只下載或查看.gif,.jpg,.jpeg,.png和.bmp文件。 如果你不想允許這個,然後刪除行「Allow from env = let_me_in」 我希望這會工作。

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
# If the URI is an image then we allow accesses 
SetEnvIfNoCase Request_URI "\.(gif|jpe?g|png|bmp)$" let_me_in 

Order Deny,Allow 
Deny from All 
# Allow accesses only if an images was requested 
Allow from env=let_me_in 
</IfModule> 

# END WordPress 
+0

Unforunatelly,這個解決方案不起作用... – esio