일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- linux시간으로 변경
- semanage
- python subprocess
- 정규식 문자열 출력
- g++ 업데이트
- c3 축 가리기
- 백준
- CentOS7
- gcc regex
- c3 초
- grafana dashboard
- c3 second
- snmp
- 1697
- selinux port 등록
- influxdb 설치
- subporcess path
- 정규식 컴파일
- c3 step graph
- gcc 업데이트
- 정규식 활용
- regex_search
- telegraf
- python os
- InfluxDB
- python popen
- centos pyhon 설치
- snmp test
- c++ 정규식
- c3 축 없애기
- Today
- Total
목록NodeJS (64)
리셋 되지 말자
http, https http방식으로 통신한다면, 누군가가 통신 내용을 보고 있다고 간주해도 무방한다. app.use(session({ HttpOnly: true, secure: true, secret: 'sknfienf123', resave: false, saveUninitialized: true, store:new FileStore() })) session 미들웨어를 사용할 때, 위에처럼 secure 옵션을 true로 추가하면 https에서만 세션이 동작하도록 설정할 수 있다. 그리고 HttpOnly 옵션을 true 추가하면 세션 쿠키에 대한 자바스크립트의 동작을 방지할 수 있다.(document.session) 이외에도 자바스크립트코드 공격을 방지하기 위해 sanitizehtml 등을 추가로 사용할..
UI 만들기 로그인 버튼을 만든다. templage.js var template = { html: function (title, list, body, control) { return ` login WEB author ${list} ${control} ${body} `; }, list: function (topics) { var list = ''; topics.forEach((topic) => { list = list + `${topic.title}`; }); return list; }, author: function (authors, author_id) { var tag = ``; var selected = ''; authors.forEach(author => { if (author_id === auth..
세션 저장소 세션 데이터의 저장소를 세션 저장소라고 한다. 이를 변경하는 방법을 알아본다. (expressjs.com/en/resources/middleware/session.html)사이트 아래쪽에 Compatible Session Stores라는 항목을 확인할 수 있다. 이중에서 간편하게 사용이가능한 session-file-store을 사용해본다.(www.npmjs.com/package/session-file-store) session file store npm install -s session-file-store 설치를 한다. var express = require('express') var parseurl = require('parseurl') var session = require('expres..
session 객체 var express = require('express') var parseurl = require('parseurl') var session = require('express-session') var app = express() app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: true })); app.get('/', function (req, res, next) { console.log(req.session); res.send('hello session'); }) app.listen(3000, function(){ console.log('nodejs server is listening on por..
코드 분석 먼저 app.use(session{});부분을 보면 'secret'이라는 값을 확인할 수 있다. app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: true })) secret에 대한 설명은 아래와 같다. 노출되면 안되는 값. resave가 false이면, 세션데이터가 바뀌기 전까지는 세션 저장소의 값을 저장하지 않는다. true면 값이 바뀌던 안바뀌던 계속 값을 저장한다. saveUninitialized이 true이면 세션이 필요하기 전까지는 세션을 구동시키지 않는다. (기본적으로 true로 하면 좋다.)
미들웨어 session (expressjs.com/en/resources/middleware/session.html) nodejs의 공식 홈페이지에서 설명을 확인할 수 있다. (github.com/expressjs/session) github에서도 확인 가능하다. 설치 npm을 이용해 설치한다. npm install -s express-session express-session.js var express = require('express') var parseurl = require('parseurl') var session = require('express-session') var app = express() app.use(session({ secret: 'keyboard cat', resave: fal..
쿠키 로그인 적용 쿠키를 이용해서 로그인, 로그아웃, 기능 제어를 구현하였다. 기존의 filestream 모듈을 이용했던 프로젝트에 적용했다. 쿠키에 관한 대강적인 사용법을 익히는 것이어서 대강 구현함. 이러한 방식(쿠키에 id, password, nickname)을 저장하는 것은 매우 위험한 방법이므로 session을 이용한 방법으로 사용하여야 한다. 그리고 사용자의 비밀번호를 직접 쿠키에 적용하는것은 절대로 일어나서는 안된다. 이를 위한 암호화 기법으로 hash, salt, key stretching과 같은 기법이 사용된다.(PBKDF2, bcrypt 라이브러리 등이 이를 대신 해준다.) 또한, 쿠키는 4k의 정보만 저장할 수 있지만, localStorage, Indexed DB와 같은 방식은 더 많..
Path 쿠키가 특정한 디렉토리에서만 활성화 되도록 하기 위해서 Path를 설정할 수 있다. cookie.js var http = require('http'); var cookie = require('cookie'); var app = http.createServer(function (request, response) { if (request.headers.cookie != undefined) { console.log(cookie.parse(request.headers.cookie)); } response.writeHead(200, { 'Set-Cookie': ['yummy_cookie=choco', 'tasty_cooke=strawberry', `Permanent1=cookies; Expires=Wed..