标签: ruby-on-rails ruby-on-rails-3 carrierwave
用户使用carrierwave gem将私人文档上传到我的网站。默认情况下,carrierwave根据数据库ID访问图像,这使得其他人很容易猜到他们不应该访问的文档的URL。
我想通过伪造网址来使文件更安全,以便通过猜测网址来访问文档。
我该怎么做呢?
答案 0 :(得分:2)
您可以使用UUID's作为CarrierWave中文件名的标识,由于UUIDs的性质和概念,这将使猜测文件名几乎不可能。
答案 1 :(得分:-1)
只需在您的上传器类中重新定义store_dir。
store_dir
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{rand 500}_#{model.id}" end
好吧,当然不要在实际应用程序中使用rand 500。
rand 500