我想允许我的网站的用户使用 node.js 保存公共图像文件。我应该怎么做才能遵循安全图像存储的最佳实践?如何防止恶意软件上传?
我目前控制以下内容:
- 检查用户是否已登录
- 图像大小
- 图像数量
- 图像类型
我想允许保存以下类型的图像:
image/gif gif;
image/jpeg jpeg jpg;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
我还应该考虑什么来防止恶意软件上传?
您尚未分享有关如何允许下载以及如何进行下载的详细信息,但是可以通过"检查用户是否已登录"来做出一般答案,假设我们正在谈论一个网页在过程的某一点:
如果图像是公开的,每个人都可以下载。您无法阻止任何实际可以看到图像的人下载它(因为此时图像已经传输到客户端的浏览器(。
一般来说(对于那些还不知道的人(:永远不要放你不想在网络上传播的在线图片(或者那些有你无权的版权(。"复杂的解决方案",例如尝试禁用网页上的右键单击以防止下载,只能阻止初学者。如果您希望图像能够显示,它必须是可访问的,因此它是可下载的。
您可以做什么,库存照片网站通常这样工作:只有质量差的图片预览(或上面有大水印(是公开的并显示在页面上。真正的完整质量图像是私有的,当您的所有检查都经过验证后,将通过直接文件下载下载。