将图像上传到 S3 并在 Facebook 画布上投放的安全问题



我可能会问一个愚蠢的问题,但我试图了解我需要采取的必要安全预防措施,以允许用户将图像(png,jpg,gif)上传到S3,并通过托管在EC2上的绝对URL为facebook画布提供它。我将存储桶名称和文件名存储在 RDS 中,并计划通过调用画布中的绝对地址来显示图像。

我意识到,对于图片上传,至少需要检查:1)文件类型(JPG,PNG,GIF),2) 文件大小 (<5 MB),3)哑剧类型?

我的问题是,由于文件存储在 s3 上,并且只有文件名和存储桶名称在服务器上,因此是否需要额外的安全预防措施?我在其他地方读到我应该通过gd或imagemagick和调整大小等来运行它,我担心这可能会矫枉过正并占用服务器资源。 我意识到文件上传的安全性非常非常困难,任何帮助将不胜感激。

提前谢谢你。

我建议不要像你说的那样通过GD和Imagemagick运行它,因为系统使用和不必要的进程。S3 真的很快。尤其是来自亚马逊系统上的另一个盒子。我最终调整了图形大小,因为我们不需要那么大的图形,而且我们不想为存储大图像付费,但这不是安全问题,只是 $$/付款问题。

安全性并不难。如果您的 Facebook 应用程序引用您的 EC2 实例,则除了读取之外,不需要任何安全性。您的服务器代码/应用程序将执行写入权限。当您使用 S3 对象上传图像时(如果这是在 PHP 中),您只需在上传时设置文件的权限。

我有一堆Facebook应用程序可以将图像发布到S3,没有问题。这是一个很棒的架构,运行良好。

最新更新