像许多网络服务一样,我们需要获取访问者的个人资料图片。这是通过一个简单的 hapi 上传脚本完成的。
我们现在想知道什么是防止我们获取可能包含要直接执行或通过漏洞执行的脚本的恶意图像的最佳实践。
什么是最好的安全流程?调整图像大小?但是可用的几种格式呢?使用两个不同的库分两步将所有内容转换为 PNG?
有没有为此目的编写的 npm ?
需要的建议。
You can visit for working code in github https://github.com/pandeysoni/Hapi-file-upload-download
/*
* upload file
*/
exports.uploadFile = {
payload: {
maxBytes: 209715200,
output: 'stream',
parse: false
},
handler: function(requset, reply) {
var form = new multiparty.Form();
form.parse(requset.payload, function(err, fields, files) {
if (err) return reply(err);
else upload(files, reply);
});
}
};
/*
* upload file function
*/
var upload = function(files, reply) {
fs.readFile(files.file[0].path, function(err, data) {
checkFileExist();
fs.writeFile(Config.MixInsideFolder + files.file[0].originalFilename, data, function(err) {
if (err) return reply(err);
else return reply('File uploaded to: ' + Config.MixInsideFolder + files.file[0].originalFilename);
});
});
};