분류 전체보기
-
암호화 - MD5, SHA256, PBKFD2JavaScript/Node.js 2018. 12. 6. 02:29
암호화 - MD5, SHA256, PBKFD2사용자로부터 전달받은 사용자의 정보 중 패스워드 정보를 그대로 데이터 베이스나 다른 저장 공간에 저장하는 경우 그것이 유출된다면 매우 심각한 문제가 발생하게 된다.이는 소송이 발생할 수 있는 문제로 이어지게 된다.그러므로 사용자 정보를 저장하게 될 때에는 항상 보안을 염두해야한다.이번 시간에는 사용자 정보 중 패스워드를 해커들이 알 수 없도록 암호화하는 방법을 알아볼 것이다. MD5MD5는 1991년에 보안을 위해 만들어진 기능이다. 그러나 현재에 와서는 다양한 결함들이 발생되었고 이 결함들을 통해 SSL 인증서를 변조할 수 있게 되었다는 것이 발표된 지금은 보안을 위해서는 사용되지 않는 기술이다.MD5가 어떻게 데이터를 암호화하는지, 어떠한 기술인지를 알아보..
-
Express - MySQL SessionJavaScript/Node.js 2018. 12. 4. 20:07
Express - MySQL Session지난 시간에 세션에 대해서 알아보았다.세션 정보는 클라이언트와 서버간 통신이 끊길 경우 사라진다는 특징이 있다.이것을 방지하기 위해서 세션에 대한 정보를 데이터 베이스에 저장하고 키 정보를 클라이언트 PC에 저장하여 접속 시 데이터 조회를 통해 세션을 유지하는 방법이 있다.이번 시간에는 MySQL에 세션 데이터를 저장하는 방법을 알아보자. Express-MySQL-Sessionnpm사이트에서 express-mysql-session을 검색하자.이 패키지는 세션 정보를 mysql 데이터베이스에 저장하기 위한 패키지다. 설치 구문을 이용해 패키지를 설치하도록 하자. Express-Mysql-Session API사용 방법을 보고 사용해보자."express-mysql-se..
-
Express - Session 1JavaScript/Node.js 2018. 12. 4. 18:07
Express - Session 1지난 시간에 쿠키에 대해서 알아보았으니 이번 시간에는 세션에 대해서 알아보자.세션은 웹 서버에 접근한 사용자를 식별하기 위해 만들어진 기술이다.기존 HTTP 프로토콜은 사용자의 상태를 유지하는 능력이 없기 때문에 애플리케이션을 이용하는 사용자를 구별할 수 있는 방법이 없었다.그래서 세션이라는 기술을 이용해 브라우저의 연결이 지속되는 기간동안 사용자를 식별할 수 있도록 데이터를 보관하고 요청이 발생할 때 식별 데이터를 이용하여 어떠한 사용자인지 구분을 할 수 있다. Express-SessionExpress API 문서 페이지를 들어가보면 Request객체와 Response객체에서 Session속성을 지원하지 않는 것을 알 수 있다.그래서 외부 npm 패키지 모듈을 설치하여..
-
Cookie 서명JavaScript/Node.js 2018. 12. 1. 23:56
Cookie 서명이번 시간에는 쿠키 데이터를 서명하는 방법을 알아보자.쿠키는 클라이언트 PC에 간단한 데이터들을 저장하기위한 기능이라고 설명했었다.웹 프로그램을 이용하는데 필요한 데이터이니만큼 보안 또한 적지않게 중요하다 할 수 있다. Cookie 데이터의 취약한 보안성이전 시간에 우리가 쿠키 데이터가 클라이언트 PC에 저장되는지를 확인하기 위해서 개발자도구(F12)를 열어 Network탭에서 서버와 클라이언트간에 전달되는 데이터를 확인했었다.그 결과 count라는 쿠키에 서버에서 값을 설정하는 "Set-Cookie" 헤더정보를 통해 쿠키에 저장되는 값을 확인할 수가 있었다. 이러한 직접적인 데이터 공개는 보안상 취약점이 되기 때문에 권장하는 작업이 아니다. 클라이언트 PC에 값을 저장해야한다면 최소한의..
-
CookieJavaScript/Node.js 2018. 12. 1. 00:38
Cookie쿠키란 사용자가 웹 사이트를 방문할 때 서버 측에서 사용자의 PC에 저장시키는 작은 데이터 파일이다.요청과 응답하는 과정에 텍스트 정보를 저장하고 읽어서 사용할 수가 있다.일반적인 브라우저에서 최대 4KB의 텍스트 정보를 담을 수 있으며, 하나의 사이트에서는 최대 20개의 쿠키 파일 생성이 가능하다.모든 사이트에는 최대 300개의 쿠키 파일을 생성할 수 있다.만약 최대 생성 허용 수치를 넘어 쿠키를 생성할 경우 가장 오래전 생성된 쿠키를 기준으로 삭제된 후 새로운 쿠키가 생성된다.쿠키는 최대 저장 용량이 4KB이기 때문에 간단한 정보를 저장하기 위해서이거나 최근 읽은 글, 최근 본 상품과 같은 식별자들을 저장할 때 활용된다. 이번 시간에는 쿠키를 생성하고 사용하는 방법을 알아보자. API 문서..
-
mysql - 글 삭제하기JavaScript/Node.js 2018. 11. 30. 20:01
mysql - 글 삭제하기이번 시간에는 데이터베이스의 글 내용을 삭제하는 방법을 알아보자. 글 목록에서 항목을 선택해서 글 상세보기로 이동하고 해당 페이지 메뉴 중 삭제 메뉴를 보여준다.삭제 메뉴를 클릭하면 삭제를 처리하기 위한 동의 여부 페이지로 이동시켜주고 선택에 따라 삭제 혹은 이전 페이지로 이동시켜준다. 삭제 메뉴 표현하기상세 내용을 보고 있을 때 삭제 메뉴를 선택할 수 있도록 메뉴를 추가하자.topic 즉 글 내용이 있을 경우 삭제 메뉴를 표현해주고 글 내용이 없는 경우 삭제 메뉴를 표현하지 않는다. 라우트 작성하기삭제 메뉴를 클릭할 때 삭제 동의 여부 페이지로 이동시켜주는 라우트를 작성하자.글 목록을 표현하기 위한 쿼리를 조회하고, 이후 글 상세 내용을 출력하기 위해 WHERE절을 붙여 현재 ..
-
mysql - 글 수정하기JavaScript/Node.js 2018. 11. 29. 13:40
mysql - 글 수정하기이번에는 글을 수정하는 방법을 알아보자. 글 목록을 선택하면 내용 하단에 수정버튼을 표현하고 그 버튼을 누르면 즉시 수정할 수 있도록 만들 것이다. 라우트 작성하기edit버튼을 클릭하여 발생하는 글 수정 페이지 이동 요청처리를 하자./topic/글 번호/edit URL 형식으로 요청을 받고 처리할 것이다. 글 목록을 전부 출력해주는 쿼리문을 실행하고 파라미터에 글 번호 id를 체크하여 해당 id의 글 내용을 불러오는 쿼리를 수행한다.불러온 글 정보는 글 수정 화면에서 출력해주기 위해 edit이라는 템플릿에 객체로 전달한다. HTML 템플릿 작성하기글 수정 폼을 표현하기 위해 템플릿을 생성하자. views_mysql 폴더 하위에 edit.pug를 생성한다.글 목록을 출력해주고 ar..
-
mysql - 글 등록하기JavaScript/Node.js 2018. 11. 28. 16:41
mysql - 글 등록하기이번에는 웹 애플리케이션에서 글을 작성하고 데이터 베이스에 추가하는 방법을 알아보자. /topic 페이지에 접속하면 글을 등록하는 add버튼을 표현한다.add버튼을 클릭하면 글을 등록할 수 있는 폼이 나타나고 글을 작성하면 작성한 글로 이동시켜주는 기능을 만들어보자. 라우트 작성하기글을 등록할 폼을 보여주기 위해 새로운 페이지를 작성할 것이다.페이지의 형식은 view.pug페이지를 기반으로 글 목록을 보여주고 아래에 작성 태그들을 보여줄 것이다.글 목록을 보여주기 위해 topic테이블을 조회한다. 테이블 조회가 정상적으로 이루어지면 add페이지를 렌더링한다. HTML 템플릿 작성views_mysql 하위에 add.pug 파일을 생성한다.해당 페이지를 글 등록 페이지로 사용할 것이..