수업소개
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"
}
}

