본문 바로가기

전체 글

(432)
express 프로젝트 만들기 오류 npm install express-generator -g 를 입력해주면 해결 된다. 이제 잘 실행된다. 출처 ERROR- 'express'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. ( express 명령어 실행불가 오류 오류 메시지 c:\javanAndroid\study_nodejs>express helloworld 'express'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. .. codedragon.tistory.com
Node.js.49.부록 - pm2 보충학습 pm2 start main.js --watch background로 실행되므로 pm2 log를 통해 실행 상황을 확인했다. pm2 list : 현재 실행되고 있는 프로세스들의 리스트 pm2 kill : pm2로 실행된 모든 프로세스들을 종료시킴 pm2 start main.js --watch --no-daemon daemon: background로 실행되는 프로세스. 즉, demon이 아닌 상태로 실행시킴 이로 실행하게 되면 pm2 실행과 동시에 log를 볼 수 있다. 이 상태에서 다음 정보를 create해보자. 그렇게 되면 log에 프로세스가 꺼졌다가 켜졌다는 것을 확인할 수 있다. 하지만 이렇게 만들면 안된다.. 나중에 session, passport에 대해 배우긴 하는데 우리가 원하지 않는 타이밍에 ..
Node.js.48. API와 CreateServer API : Application Programming Interface 웹 애플리케이션은 Node.js가 가진 기능을 호출하여 동작하게 된다. fs.readFile에 대해 생각해보자. 이 함수는 누가 만들었을까? Node.js 개발자들이 만든 것이다. 이 함수가 어떻게 동작하는지 우리는 모른다. Node.js를 만든 개발자들은 Node.js를 이용하는 개발자들에게 파일을 읽을 때에는 readFile을 사용하라고 사용설명서를 통해 말한다. 즉, readFile 함수의 이름과, 파라미터, 리턴값은 이 함수를 만든 Node.js개발자들과 이 함수를 사용하는 Node.js를 이용하는 개발자들 사이의 약속된 조작장치이다. 이런 조작장치를 Interface라 한다. 우리는 interface인 readFile함수를 ..
Node.js.47.3.App제작-출력정보에 대한 보안 목표 sanitize-html 사용방법 sanitize-html Clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis www.npmjs.com var sanitizeHtml = require('sanitize-html'); 외부 모듈을 불러온다. var dirty = 'some really tacky HTML'; var clean = sanitizeHtml(dirty); sanitizeHtml(dirty)를 통해 dirty했던 HTML이 clean해진다. 우리의 웹 애플리케이션에서는 description과 title을 sanitize해야 한다. var sani..
Node.js.47.2.App제작-출력정보에 대한 보안 목표 npm을 통해 다른 사람이 만든 모듈을 사용하여 보안 문제 해결하기 npm sanitize html sanitize-html Clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis www.npmjs.com npm init : 우리의 웹 애플리케이션을 npm으로 관리하기 위한 절차가 시작됨 - package name: 그냥 enter 누르면 기본 디렉토리의 이름이 패키지의 이름이 된다. 그 외 모두 enter를 누른다. 그러면 package.json 파일이 생성된다. -g: global. 전역으로 설치 -S : 진행 중인 프로젝트에서 사용할 작은 부품으로 설..
Node.js.47.1.App제작-출력정보에 대한 보안 저번 시간: 오염된 정보가 들어오는 문제 이번 시간: 오염된 정보가 나가는 문제 목표 태그를 그대로 표현하여 문제 해결하기 (1) 문제 예시 1 XSS로 들어갈 때마다 경고창이 뜬다. 이를 page view source로 보면 script 태그가 들어가 있기 때문에 발생한다. 즉, 공격자가 자바스크립트 코드를 심어놓으면 방문자가 메롱 알림창을 보게 된다. (2) 문제 예시 2 이를 제출하게 되면 입력한 웹 브라우저로 이동하게 된다. 이 외에 사용자의 로그인 정보를 갈취한다던지, ... 많은 온라인 서비스들이 사용자들에게서부터 입력받은 정보를 바깥으로 출력할 때는 정보에서 문제가 될 수 있는 것들을 필터링하는 작업이 필요하다. 해결 방법 1. 사용자가 입력한 태그를 지운다. 2. 태그를 웹 브라우저 상에 ..
Node.js.46.App 제작-입력정보에 대한 보안 웹 애플리케이션의 보안 문제 사용자의 id와 password 정보를 담은 파일이 있다고 하자. //password.js module.exports = { id:'egoing', password:'111111' } ../ : 현재 디렉토리의 부모 디렉토리 ../password.js을 입력하게 되면 파일을 읽게 된다. 이를 view page source로 보면 우리가 만들었던 password.js가 화면에 출력되는 최악의 경우가 생긴다. 또한 ../을 덧붙이면 우리 컴퓨터를 모두 탐색할 수 있게 된다. 이 문제를 해결해보자. Google에 nodejs path parse 검색해보자. Path | Node.js v14.9.0 Documentation Path# Source Code: lib/path.js Th..
Node.js.45.App 제작 - 모듈의 활용 코드가 너무 기므로 외부 파일에 독립적으로 사용할만한 코드를 찾아보자. 목표 var template을 상부 코드처럼 바깥에서 모듈을 가져다 써보자! lib 폴더를 생성한다. 보통, 모듈을 모아 놓는 폴더를 library라는 뜻의 lib 문자로 많이 생성한다. 그리고 그 속에 template.js 파일을 생성하자. lib > template.js // var template = { module.exports = { html: function (title, list, control, body) { var template = ` WEB ${list} ${control} ${body} `; return template; }, list: function(filelist){ var list = ''; var i =..

반응형