생활코딩

Coding Everybody

보안

토픽 생활코딩 > WEB > WEB2 - Node.js > Node.js - Express

수업소개

Express 애플리케이션을 구현할 때 주의해야 할 보안적인 이슈를 살펴봅시다. 

 

 

 

강의

 

 

 

소스코드

변경사항

main.js

var express = require('express');
var app = express();
var fs = require('fs');
var bodyParser = require('body-parser');
var compression = require('compression');
var helmet = require('helmet')
app.use(helmet());

var indexRouter = require('./routes/index');
var topicRouter = require('./routes/topic');

app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(compression());
app.get('*', function(request, response, next){
  fs.readdir('./data', function(error, filelist){
    request.list = filelist;
    next();
  });
});

app.use('/', indexRouter);
app.use('/topic', topicRouter);

app.use(function(req, res, next) {
  res.status(404).send('Sorry cant find that!');
});

app.use(function (err, req, res, next) {
  console.error(err.stack)
  res.status(500).send('Something broke!')
});

app.listen(3000, function() {
  console.log('Example app listening on port 3000!')
});

 

package.json

{
  "name": "web2-nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "directories": {
    "lib": "lib"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/web-n/Nodejs.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/web-n/Nodejs/issues"
  },
  "homepage": "https://github.com/web-n/Nodejs#readme",
  "dependencies": {
    "body-parser": "^1.18.3",
    "compression": "^1.7.2",
    "express": "^4.16.3",
    "helmet": "^3.12.1",
    "sanitize-html": "^1.18.2"
  }
}

 

댓글

댓글 본문
  1. 어흥
    230708
  2. 감자
    22.12.22
  3. 당당
    2022.11.19
  4. kimkk
    인증서를 설치하고 https 처리를 할 수 있도록 수정해야 됩니다. 인증서 설치하고 https 서버로 전환하는게 좀 어려운 과정이라, 강의 실습을 위해서는 helmet을 사용하는 코드를 코멘트 아웃해서 안쓰고 하시는게 좋을 듯합니다.

    출처: https://stackoverflow.com......-js

    혹시라도 한번이라도 강의 내용대로 helmet을 사용한 코드를 실행하고, 브라우저로 접근한 적이 있다면
    사용하시는 브라우저에서 HSTS( HTTP Strict Transport Security) 기능을 비활성화하셔야 합니다. 아래 링크 내용 참고
    https://www.ssl2buy.com......ers

    그리고 브라우저의 캐쉬도 삭제 해주셔야 합니다.
    크롬 설정에서 cache로 검색해서 나오는 메뉴를 클릭해서 삭제..


    무료 인증서 설치는 아래 링크 참고
    https://happist.com......%AC
    대화보기
    • 케굴
      2022-01-03
    • jeisyoon
      2021.03.17 Express Security - OK
    • hanel_
      21.2.25
    • 김지호
      21 01 08
    • 생활둘기
      2021 1 5
    • 생활둘기
      2021 1 5
    • 콜라
      20201029 완료
    • Yong Hyun Lee
      완료 201003
    • mjkim
      app.use(helmet()); 이것을 적용하면 화면 페이지가 제대로 뜨지 않고 html 문장들만 뜹니다..해결방법 아시나요?
    • 전주호
      완료
    • 전주호
      완료
    • ldhan0715
      20-09-15
    • 뚜루뚜루뚭
      감사합니다
    • 쑤우
      수강완료. 감사합니다~
    • 강다리
      완료
    • 굼벵이
      완료
    • 케빈이
      윤기웅님 말씀대로 nsp는 이제 사용하지 않고
      npm audit 기능을 사용하시면 될 것 같습니다.
    • 윤기웅
      안녕하세요.

      강의 내용 중 nsp의 경우,
      9월 30일 부로 더 이상 사용 되지 않는 것 같습니다.

      https://www.npmjs.com......nsp

      참고 부탁드립니다!!
    • jo_onc
      보안 강의도 기대됩니다^^
    • 연수아빠
      추가 심화 강의를 기대합니다.