Node JS / Hapi Загрузка изображений и безопасность
Как и многие веб-сервисы, нам нужно получить изображение профиля наших посетителей. Это делается с помощью простого скрипта загрузки хапи.
Теперь мы задаемся вопросом, каковы наилучшие методы, которые не позволяют нам получить вредоносное изображение, которое может содержать скрипт, который будет выполнен напрямую или через уязвимость.
Каков наилучший безопасный процесс? Изменение размера изображения? Но как насчет нескольких доступных форматов? Конвертировать все в PNG в два этапа, используя две разные библиотеки?
Есть ли npm, написанный для этой цели?
Нужны советы.
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);
});
});
};