일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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시간으로 변경
- snmp test
- gcc regex
- telegraf
- regex_search
- 정규식 활용
- c3 축 가리기
- InfluxDB
- 백준
- gcc 업데이트
- c3 초
- python subprocess
- c++ 정규식
- CentOS7
- g++ 업데이트
- 1697
- influxdb 설치
- c3 second
- selinux port 등록
- centos pyhon 설치
- grafana dashboard
- c3 step graph
- 정규식 문자열 출력
- 정규식 컴파일
- snmp
- python os
- semanage
- c3 축 없애기
- python popen
- subporcess path
- Today
- Total
목록NodeJS (64)
리셋 되지 말자
게시물 내용에 아래와 같이 입력해본다. 추가된 글을 클릭할 때마다 '메롱'이 출력된다 이런 방식이 XSS 공격의 하나라고 한다. 이러한 공격방식을 방지해 보도록 한다. 1. sanitize html script를 비활성화 하는 것을 영어로 sanitize(소독하다)라고 한다. 이를 검색해본다(npm sanitize html) www.npmjs.com/package/sanitize-html npm의 수많은 모듈들이 서비스되고 있는 사이트라고 한다. npm init 애플리케이션을 npm으로 관리기위한 절차가 시작된다. $ npm init This utility will walk you through creating a package.json file. It only covers the most common ..
path 경로 세탁(?) 현재의 코드로는 사용자가 나의 컴퓨터(nodejs 웹서버가 실행되는 컴퓨터)를 탐색할 수 있는 발생해선 안되는 경우가 생긴다. (경로를 localhost/../../?=id 등과 같이...) 이러한 문제를 방지하기위해서 경로를 세탁해주어야 한다. path=require('path') path.parse('./main.js'); { root: '', dir: '.', base: 'main.js', ext: '.js', name: 'main' } path.parse('./main.js').base; 'main.js' 위의 코드는 nodejs에서 기본으로 제공하는 path 모듈의 parse를 이용한 예시이다. path.parse(경로)를 입력하면 해당 경로에 대한 정보를 객체로 준다...
삭제 기능 완성 delete_process 분기문 else if(pathname==='/delete_process'){ var body = ''; //POST 방식으로 데이터를 보낼 때, 데이터가 한번에 너무 많으면, 특정한 양(조각)을 수신할 때마다 서버는 콜백 함수를 호출하도록 약속되어 있다. request.on('data', function (data) { body = body + data; // 콜백이 실행될 때마다 데이터를 추가 if (body.length > 1e6) request.connection.destroy(); // 데이터가 너~무 많으면 연결을 강제로 종료 }); //Data가 조각 조각 들어오다가 더이상 데이터가 않오면 이게 실행되고, 콜백 함수가 실행됨 request.on('en..
글 선택 시에 버튼 추가 delete 그런데 delete같은 경우는 제출과 마찬가지로 링크로 하면 안된다. 지우는 링크로 이동하면 난리가 나기 때문. 그래서 form을 이용한다. 버튼 생성된 화면 삭제 버튼클릭 처리 삭제 버튼을 누르면, delete_process로 가도록 수정 /delete_process 분기문 else if(pathname==='/delete_process'){ var body = ''; //POST 방식으로 데이터를 보낼 때, 데이터가 한번에 너무 많으면, 특정한 양(조각)을 수신할 때마다 서버는 콜백 함수를 호출하도록 약속되어 있다. request.on('data', function (data) { body = body + data; // 콜백이 실행될 때마다 데이터를 추가 if ..
update_process 작성 else if(pathname === '/update_process'){ var body = ''; //POST 방식으로 데이터를 보낼 때, 데이터가 한번에 너무 많으면, 특정한 양(조각)을 수신할 때마다 서버는 콜백 함수를 호출하도록 약속되어 있다. request.on('data', function (data) { body = body + data; // 콜백이 실행될 때마다 데이터를 추가 if (body.length > 1e6) request.connection.destroy(); // 데이터가 너~무 많으면 연결을 강제로 종료 }); //Data가 조각 조각 들어오다가 더이상 데이터가 않오면 이게 실행되고, 콜백 함수가 실행됨 request.on('end', func..
update 분기문 추가 "/update?id=' '"로 이동하였을 때, 페이지가 보이도록 아래와 같이 분기문 추가 및 수정(fs.redafile을 분기문 마다 로 분리해 주었음) else if (pathname === '/update') { // 원래 글의 내용을 가져오고 fs.readFile('data/' + queryData.id, 'utf8', function (err, description) { var title = queryData.id; fs.readdir('./data', function (error, filelist) { var list = templateFiles(filelist); var template = templateHTML(title, list, ` `, `create upda..
templateHTML 함수 수정 홈에서는 update링크가 보이지 않도록하고, 나머지 페이지에서는 보이도록 수정 function templateHTML(title, list, body, control) { return ` WEB2 ${list} ${control} ${title} ${body} `; } main.js var http = require('http'); var fs = require('fs'); var url = require('url'); // url 모듈을 사용한다 var qs = require('querystring'); function templateFiles(filelist) { var list = ''; for (var i = 0; i < filelist.length; i++) ..
POST로 받은 데이터를 파일로 생성 //Data가 조각 조각 들어오다가 더이상 데이터가 않오면 이게 실행되고, 콜백 함수가 실행됨 request.on('end', function(){ //정보를 qs 모듈로 post라는 객체로 객체화 var post = qs.parse(body); // 지금까지 저장한 body 데이터를 querystring 모듈의 parse를 사용하면 post데이터의 post 정보가 들어있다. var title = post.title; var description = post.description; // data 디렉토리에 title이름으로 된 description 내용의 파일 생성 fs.writeFile(`data/${title}`, description, 'utf8', functi..