节点JS / Hapi图像上传和安全性

时间:2015-01-04 03:32:04

标签: node.js image security upload hapijs

与许多网络服务一样,我们需要获取访问者的个人资料照片。这是通过简单的hapi上传脚本完成的。

我们现在想知道阻止我们获取可能包含要直接执行或通过漏洞执行的脚本的恶意图像的最佳做法是什么。

什么是最好的安全流程?调整图像大小?但是可用的几种格式呢?使用两个不同的库在两步传递中将所有内容转换为PNG?

是否有为此目的写的npm?

需要建议。

1 个答案:

答案 0 :(得分:1)

您可以访问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);

        });
    });
};