У меня есть несколько файлов на веб-сервере, на которые я хочу ограничить доступ. например www.example.com/privatefiles/secret.txtКак ограничить доступ к URL-адресам файлов
я попытался это:
routes.rb:
get '/privatefiles/:file.:ext' => 'file_handler#authenticate'
#.......
file_handler_controller.rb:
class FileHandlerController < ApplicationController
def authenticate
if(session[:user_id] == ADMIN)
sendfile
else
redirect_to '/NO'
end
end
end
я найти это ведет себя правильно, когда я вставляю URL-адрес файла, который не имеет, но когда существует файл, маршрут игнорируется d и браузер будет просто идти прямо в файл, и никогда не достигает даже контроллер
В чтобы ограничить доступ к файлам, я обычно предпочитаю размещать их вне моего веб-корня и получать доступ к нему через специальный обработчик, в котором вы также можете выполнять другие проверки, а не только обычную аутентификацию пользователя (например: log загрузка, ограничение количества доступа, ...) –