我有个问题。我在客户端和服务器端都声明了一个集合,如下所示:
Images = new FS.Collection("images", {
stores: [imageStoreMongo],
filter: {
maxSize: 1048576, //in bytes
allow: {
contentTypes: ['image/*'],
extensions: ['png', 'jpg', 'jpeg', 'gif', 'svg']
},
onInvalid: function (message) {
if (Meteor.isClient) {
alert("Only png, jpg, gif or svg");
} else {
console.log(message);
}
}
}
});问题是:客户端是否能够通过文件大小和类型限制进行传递?这有点令人困惑,因为代码是由客户端和服务器共享的。
额外的问题将是更具体的CollectionFS关于如果我改变一个恶意软件的类型和扩展,使其看起来像一个图像?
发布于 2014-10-26 18:05:58
我没有使用过CollectionFS,但一般的安全原则是永远不要信任客户端。在客户机上进行验证有助于提高可用性,但您也总是希望在服务器上进行验证。
至于上传带有图像扩展名的恶意软件,这对Security.SE来说是一个更大的问题:
https://stackoverflow.com/questions/26571711
复制相似问题