-3
클라이언트에서 관련된 파일 액세스가있을 때 어떤 보안 조치를 취해야합니까?nodejs 가장 안전한 경로 및 파일 처리
예를 들어 path
관련된 기능이있는 동안 ../
을 사용하여 루트 디렉토리에 액세스 할 수 있습니다.
경로 관련 코드를 작성하는 가장 안전한 방법은 무엇입니까?
클라이언트에서 관련된 파일 액세스가있을 때 어떤 보안 조치를 취해야합니까?nodejs 가장 안전한 경로 및 파일 처리
예를 들어 path
관련된 기능이있는 동안 ../
을 사용하여 루트 디렉토리에 액세스 할 수 있습니다.
경로 관련 코드를 작성하는 가장 안전한 방법은 무엇입니까?
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) :
부결이와 왜? 얼간이. – user2727195
파일 이름 모듈 sanitize – jfriend00
감사합니다. @ jfriend00, 디렉토리 탐색은 어떻습니까 – user2727195