보안2 [Nodejs-mysql] 보안의 중요성 [생활코딩] 보안 - SQL Injection 왜 보안이 필요한가? - 외부로부터 들어오는 정보가 오염됐을 경우를 대비해야함 (오염될 수 있는 정보 : 접근한 url, 등록된 글, 파일 업로드) 외부로부터 SQL 쿼리문이 등록되는 경우 - 데이터베이스에서 ;를 입력하는 이유는 한 번에 여러개의 쿼리문을 실행하기 위함 - SELECT * FROM topic; DROP TABLE topic; 입력하면 두개의 쿼리문 실행 [Ex] - 사용자가 localcast:3000/?id=1 접속시 - SELECT*FROM topic JOIN LEFT author ON topic.author_id=author_id WHERE topic.id='1' 이 실행됨 - 사용자가 localcast:3000/?id=1;DROP TA.. 2020. 8. 7. [Nodejs] 보안 - path.parse(), sanitize-html [생활코딩] App - 입력 정보에 대한 보안 [생활코딩] App - 출력 정보에 대한 보안 파일 탐색으로 인한 정보 유출 [예] - 개인정보를 저장하는 파일 password.js - 사용자가 http://abc.com/?id=../password.js 접속한다면 - fs.readFile('data/${queryData.id}', 'utf8', function(){}); 함수로 인해 - data/../password.js를 탐색하게됨 - ../는 상위 디렉토리를 가리키게 되고 - 상위 디렉토리인 data폴더와 같은 위치에 있는 password.js이 탐색되면서 개인정보가 유출됨 - 파일탐색 정보유출 막기 위한 경로 세탁 필요 경로 분석하기 path.parse(path) var path = require(.. 2020. 8. 5. 이전 1 다음 반응형