Ruby on Rails的3.2 我的應用程序已經存儲在圖像:限制系統文件訪問公共
http://name.name.com/system/images/imgs/xxx/xxx/xxx/thumb/xxx.jpg?xxxxxxxxx
我注意到,你可以訪問這些文件中沒有登錄時,我試圖做一個的before_filter我的控制器,但是當我查看日誌時沒有查詢,也沒有使用控制器。
如何將系統文件的訪問權限限制爲僅在我的網站上登錄的用戶?謝謝
Ruby on Rails的3.2 我的應用程序已經存儲在圖像:限制系統文件訪問公共
http://name.name.com/system/images/imgs/xxx/xxx/xxx/thumb/xxx.jpg?xxxxxxxxx
我注意到,你可以訪問這些文件中沒有登錄時,我試圖做一個的before_filter我的控制器,但是當我查看日誌時沒有查詢,也沒有使用控制器。
如何將系統文件的訪問權限限制爲僅在我的網站上登錄的用戶?謝謝
您需要從$ RAILS_ROOT/public文件夾中移除這些文件並將它們移動到其他地方,例如, $ SHARED_FOLDER /上傳/。
然後創建指向控制器路線:
class FilesController
def show
# first check credentials
path = ... # use params to look up the path, but be careful to check the
# validity!
# It's probably best to have an index that contains valid files
# and to only return those. Otherwise an attacker might be able
# to compromise your server and your data.
send_file path
end
end
看來應該有一個簡單的解決方案。如果我只將一些文件從我的數據庫移動到不同的目錄,那麼可伸縮性和管理將變得非常快速。我想公開的大部分文件都是公開的。我能做些什麼來管理數據庫嗎? – DDDD
移動文件了'public'文件夾中,然後用一個控制器動作用'send_file'將文件有助於只有經過身份驗證的用戶。 –