2016-07-22 3 views
-3

클라이언트에서 관련된 파일 액세스가있을 때 어떤 보안 조치를 취해야합니까?nodejs 가장 안전한 경로 및 파일 처리

예를 들어 path 관련된 기능이있는 동안 ../을 사용하여 루트 디렉토리에 액세스 할 수 있습니다.

경로 관련 코드를 작성하는 가장 안전한 방법은 무엇입니까?

+0

부결이와 왜? 얼간이. – user2727195

+1

파일 이름 모듈 sanitize – jfriend00

+0

감사합니다. @ jfriend00, 디렉토리 탐색은 어떻습니까 – user2727195

답변

-1

1) 디렉토리 순회

var rootDirectory = '/var/www/'; 

var path = require('path'); 
var filename = path.join(rootDirectory, userSuppliedFilename); 
if (filename.indexOf(rootDirectory) !== 0) { 
    return respond('trying to sneak out of the web root?'); 
} 

Reference 방지

if (!/^[a-z0-9]+$/.test(filename)) { 
    return respond('illegal character'); 
} 

3) 허용 목록 먼저 체크 독 널 바이트

if (filename.indexOf('\0') !== -1) { 
    return respond('That was evil.'); 
} 

2) :