如何安全,低成本地允许我的网站上的图像?

Jad*_*ade 8 security xss markdown ruby-on-rails image

为园丁网站开发了一个社交网站,并且有兴趣让用户能够在他们的"推文"中添加图片.

如果我允许他们将图像上传到实际网站,这似乎会很快变得昂贵(这是一个副项目,没有任何人资助,而不是我和我自己的痴迷).假设该网站变得适度受欢迎,每周有100K用户发布一张图片,大小只有250K.那是(100000*.1*52/1024)= 508 MB /年的存储空间(并没有考虑到增加的带宽).另外,我必须增加服务器负载以缩放图像.我不确定我是否应该继续这样做,或者是否有更好的可能性.

在某些方面,链接到其他网站似乎更好.你确实有破碎的链接,但对我来说更大的担忧是安全性:XSS.

应用程序在Rails 3上,使用MongoDB/Mongoid作为后端,如果这很重要的话.

我正在寻找以下解决方案:

  • 在外部站点上存储图像的API.最理想的是能够将其上传到我的网站,并进行API调用以将其存储在外部网站上.
  • API(可能是Javascript API),可以轻松安全地链接到一个或多个外部图像托管站点.
  • Markdown或类似的标记,允许安全地链接到外部图像.我有兴趣让用户能够以有限的方式格式化他们的帖子,因此这可能同时解决两个问题.我注意到这就是Stack Overflow的作用.
  • 将图像URL模式列入白名单的安全库
  • 关于我为什么这个问题的思考错误的建议.例如,也许我应该只存储图像.每年500MB并不是那么昂贵,它确实让我能够创造一个非常干净的用户体验.

我的目标是(按顺序): - 对我自己的网站都是安全的,不允许对其他网站进行XSS攻击 - 最好的用户体验 - 易于维护和实施

您在网站上允许用户提供的图像做了什么?

And*_*rea 2

为什么不使用像 Amazon s3 这样的服务呢?很便宜,非常便宜(具有减少冗余存储),并且像 Paperclip 这样最重要的插件支持它开箱即用......