본문 바로가기

분류 전체보기337

path 모듈로 상대 경로 제거를 이용한 보안 방법 생활 코딩 Nodejs 강의 중 url 의 쿼리 데이터를 통해 경로를 입력하여 서버의 컴퓨터의 데이터를 접근 할 수 있어 보안에 취약할 수 있다는 점을 배웠다 그 예시로 다음과 같은 페이지를 만들기 위해 아래와 같은 경로를 가진 서버의 경우 각각의 뷰 페이지 데이터는 루트 폴더 기준 data 폴더 내에 저장하고 있고 fs 모듈의 readdir 로 data 폴더내 파일들을 찾아 readfile 로 파일의 내용을 읽어오는 방식으로 설계하였는데 개인정보를 저장하기 위한 password.js 는 data 폴더의 상위 디렉토리에 위치시켰다 같은 data 폴더 내가 아니므로 password.js 파일은 읽히지 않겠지? 라는 생각은 위험하다 const queryData = new URL("http://localhos.. 2022. 9. 2.
[백준 2161/javascript] 카드 1 자바스크립트는 배열을 큐처럼 사용할 수 있다 뺀 요소를 새 배열에 추가하여 join 으로 연결해주면 된다 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net let input; const readline = require("readline").createInterface({ input: process.stdin, output: process.stdout, }); readline.on("line", (line) => { input = Number(l.. 2022. 9. 1.
JSON 이란? IDE 를 사용하다 JSON 파일을 여러번 마주하였지만 JSON 이 무엇인지 몰랐었는데 기회가 되어 정리해본다 JSON 이란 JavaScript Object Notation 즉, 자바스크립트 객체 표기법이다 서버와 클라이언트 간의 데이터 교환 시 사용하는 표기법이며 자바스크립트 객체 Javascript Object 와는 다르다 JSON 은 객체 표기법이지 객체가 아니다! JSON은 string 타입으로서 문자열이고 객체가 아니다 객체를 JSON 형식으로 만들기 위해서 JSON.stringify() 를 사용해서 JSON 형식의 문자열로 바꾸거나 JSON 형식의 문자열을 객체로 만들기 위해서 JSON.parse() 를 사용한다 객체가 JSON.stringify()로 JSON 문자열 형식으로 type 이 바뀌.. 2022. 9. 1.
모듈 사용 시 import 와 require 의 차이 코드의 크기가 커지면 코드를 기능별로 파일로 나누어 저장하고 불러와서 쓰게 되는데 이렇게 나누어진 파일들을 모듈 module 이라고 하며 나누는 것을 모듈화한다고 한다 모듈을 불러와서 사용할 때 Node.js (Common JS) 에서는 require 를 사용하고 const name = require('./namelist.js') ES6 (최신? 자바스크립트 표준 규격) 에서는 import 를 사용한다 import name from './namelist.js' 모듈로 설정할 파일을 만들고 데이터를 모듈로서 동작하도록 만들기 위해서 Node.js 의 경우엔 데이터를 module.exports 객체에 넣어주는데 ES6의 경우와 비교하면 모듈 파일 내의 데이터를 변수 별로 하나 하나 분리해서 내보내고자 할 때.. 2022. 9. 1.