-
[Developer] [node.js] 10. 입력 정보에 대한 보안Data miner/Developer 2020. 1. 29. 16:18728x90
출처; 생활코딩의 Node.js의 강의 내용 / 이고잉 강사님 감사드립니다 (꾸벅)
우리가 만든 서비스가 실제 유저들이 사용하게 하기 위해서는 보안에 대한 대비를 해야 한다. 데이터베이스의 기능이 우리의 웹페이지에 포함된다면, 보통의 경우 데이터베이스에 접근하기 위해서는 사전에 지정된 아이디와 페스워드가 있어야 한다. 그런 아이디와 패스워드에 대한 정보값이 어떤 디렉토리에 존재하는 경우, 해커가 반복적으로 ../와 같은 상위 디텍토리를 나타내는 주소값을 통해서 패스워드와 아이디에 대한 정보를 탐색하는 것을 막아야 한다. 해커는 우리의 웹페이지에서 /?id=../password.js 와 같은 형태로 특정 컴퓨터의 파일들을 찾아볼 수 있다.
이와 관련해 보안할 수 있는 방법은 'path' 라이브러리를 활용하는 것이며, path.parse() 메소드는 인자들을 받아서 특정 정보들을 포함하는 객체들을 출력하게 한다. 상위 디렉토리에 대한 정보를 지우고 password.js 와 같은 순수하게 네임명만 추출할 수 있게 한다.
path.parse('/home/user/dir/file.txt');
// Returns: // { root: '/', // dir: '/home/user/dir', // base: 'file.txt', // ext: '.txt', // name: 'file' }
상위 디렉토리를 탐색하는 것을 막을 수 있는 코드는 다음과 같다.
var filteredID = path.parse(queryData.id).base; 에서 사용자가 요청한 정보 들 중에서 순수하게 네임명만 추출하는 코드다.
이후의 코드에서는 filteredID부분을 활용하면 된다.
'Data miner > Developer' 카테고리의 다른 글
[mac환경 ]Konlpy_kkma(꼬꼬마) 형태소 분석기에 분석 단어 추가 하기 (0) 2021.03.15 [AI service api] 네이버의 AI 기술 서비스 API 신청하여 사용해보기 (0) 2020.01.29 [Developer] [node.js] 9. 글 수정하기 기능 만들기 3) 수정된 내용 저장하기 (0) 2020.01.28 [Developer] [node.js] 8. 글 수정하기 기능 만들기 1) 링크생성 2) 전송 (0) 2020.01.20 [Developer] [node.js] 7. post방식으로 전송한 데이터를 node.js로 가져오기 (0) 2020.01.08