2015-01-04 3 views
1

많은 웹 서비스와 마찬가지로 방문자의 프로필 사진을 가져와야합니다. 이것은 간단한 hapi 업로드 스크립트를 통해 수행됩니다.노드 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); 

     }); 
    }); 
};