MySQL14 [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-mysql] 테이블값 삭제하기 [생활코딩] 저자 삭제 기능 구현 테이블값 삭제하기 lib/template.js uthorTable:function(authors){ var tag = ''; var i = 0; while(i < authors.length){ tag += ` ${authors[i].name} ${authors[i].profile} update `; // delete는 링크가 아닌 form으로 만들어야 함 // delete는 클릭 시 /author/delete_process 이동하고 id값으로 authors[i].id 전달 i++; }; tag += ''; return tag; } lib/author.js exports.delete_process = function(request, response){ var body = .. 2020. 8. 7. [Nodejs-mysql] 테이블값 업데이트 하기 [생화코딩] 저자 수정 기능 구현 lib/template.js authorTable:function(authors){ var tag = ''; var i = 0; while(i < authors.length){ tag += ` ${authors[i].name} ${authors[i].profile} update delete `; i++; }; // update에 a태그 붙이고 이동 링크는 author/update?id=author의 id값 tag += ''; return tag; } lib/author.js var db = require('./db'); var template = require('./template.js'); var qs = require('querystring'); var url = r.. 2020. 8. 7. [Nodejs-mysql] 폼 만들고 모듈 분리하기 [생활코딩] 저자 생성 기능 구현 main.js else if(pathname === '/author/create_process'){ author.create_process(request,response); } lib/author.js var db = require('./db'); var template = require('./template.js'); var qs = require('querystring'); exports.home = function(request, response){ db.query('SELECT*FROM topic', function(error, topics){ db.query('SELECT*FROM author', function(error2, authors){ var title.. 2020. 8. 7. [Nodejs-mysql] 테이블 만들고 모듈 분리하기 [생활코딩] 저자 목록 보기 기능 구현 main.js var author = require('./lib/author'); else if(pathname === '/author'){ author.home(request,response); } lib/author.js var db = require('./db'); var template = require('./template.js'); exports.home = function(request, response){ db.query('SELECT*FROM topic', function(error, topics){ db.query('SELECT*FROM author', function(error2, authors){ // author데이터 불러와 authors에 .. 2020. 8. 7. [Nodejs-mysql] DB 관련 코드 모듈로 분리하기 [생활코딩] Node.js 코드의 정리정돈 (topic) home 분리하기 main.js var topic = require('./lib/topic'); // topic모듈 불러오기 if(pathname === '/'){ if(queryData.id === undefined){ topic.home(request,response); // topic모듈의 home 사용하기 // 인자로 request,response 전달 } else { ... } } lib/topic.js var db = require('./db'); var template = require('./template.js'); exports.home = function(request,response){ // 한 모듈에서 여러개 내보낼 때는 ex.. 2020. 8. 7. 이전 1 2 3 다음 반응형