본문 바로가기
300x250

전체 글198

CSRF 개념정리 CSRF web application security란? 개발자들이 웹사이트, 모바일 어플, 웹 api 등을 만들 때에 해커들의 공격을 막기 위해서 보안은 필수 사항 여러가지 공격들 SQL injection, XSS, CSRF CSRF cross site request forgery 악성 스크립트가 담긴 사이트를 열거나 링크를 클릭할 때, 변조된 요청을 보내는 공격이다. 기존의 로그인한 기록을 바탕으로 서버가 클라이언트의 요청을 믿기 때문에 발생한다. 다른 오리진에서 유저가 보내는 요청을 조작하는 것 해커가 직접 데이터를 접근할 순 없다. 공격을 하기위한 조건 1)쿠키를 사용한 로그인 유저가 로그인 했을 때, 쿠키로 어떤 유저인지 알 수 있어야함 2)예측할 수 있는 요청/parameter를 가지고 있어야.. 2021. 8. 6.
session 개념, im-sprint-auth-session 리뷰 세션(Session)이란? HTTP Session id를 식별자로 구별하여 데이터를 사용자의 브라우저에 쿠키형태가 아닌 접속한 서버 DB에 정보를 저장한다. 클라이언트는 HTTP Session id를 쿠키로 메모리 저장된 형태로 가지고 있다. 메모리에 저장하기 때문에 브라우저가 종료되면 사라지게 된다. 중요 서버가 client에 유일하고 암호화된 ID를 부여 중요 데이터는 서버에서 관리 서버에 접속 상태가 저장 신뢰할 수 있는 유저인지 확인이 가능 Cookie에 세션 아이디가 저장 세션의 흐름 1. 클라이언트가 서버에 Resource를 요청합니다. 2. 서버에서는 HTTP Request를 통해 쿠키에서 Session id를 확인을 한 후에 없으면 Set-Cookie를 통해 새로 발행한 Session-id.. 2021. 8. 6.
쿠키(Cookie), 쿠키를 이용한 Client와 Server 흐름 개념 정리 쿠키(Cookie) 웹 서버가 브라우저에게 지시하여 사용자의 로컬 컴퓨터에 파일 또는 메모리에 저장하는 작은 기록 정보 파일이다. 파일에 담긴 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀔 수 있다. 쿠키의 목적 로그인을 통해 볼 수 있는 서비스. 장바구니 서비스. 등등 클라이언트가 정보를 유지하는 상태성의 성격을 가져야하고, 정보를 유지할 수 없는 Connectionless, Stateless의 성격을 가진 HTTP의 단점을 해결하기 위해 쿠키라는 개념이 도입되었다. 쿠키는 주로 다음 세 가지 목적으로 사용된다. 세션 관리, 개인화, 추적 Session management Logins, shopping carts, game scores, or anything e.. 2021. 8. 6.
HTTPS, https 암호화 방법, 공개키, 개인키,hash, salt 기본 개념정리 http vs https http HTTP는 하이퍼 텍스트 전송 프로토콜의(Hypertext Transfer Protocol)의 약자이다. 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜 일반 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것이다. https HTTPS는 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure)의 약자이다. https는 쉽게 말해서 https 프로토콜에 보안 기능을 추가한 것이다. 사용자가 사이트에 제공하는 정보를 암호화하는데, 쉽게 말해서 데이터를 암호로 바꾼다고 생각하면 쉽다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 .. 2021. 8. 5.
MongoDB - 기본 명령어, CRUD 정리 몽고디비의 명령어는 조금더 간결하다 crub 쿼리문에 있어서 객체를 활용하는 메소드 형식이다. 기본 명령어 몽고디비는 기본적으로 camelCase를 사용한다. 1) DB 관련 MongoDB (대소문자 구분 0) DB 보기 show dbs DB 생성 use DB이름 DB 선택 use DB이름 현재 DB db 현재 DB 정보 db.stats() DB 삭제 (DB 선택 후) db.dropDatabase() 2) Collection(Tables) 관련 Collection은 기본적으로 Primary Key가 필요없다. Document가 생성될 때 마다. _id가 그 역할을 한다. 타입도 지정해 줄 필요가 없다. 벨류 자체로 타입을 결정한다. MongoDB (대소문자 구분 0) Collection(Table) 보기.. 2021. 8. 5.
NoSQL, MongoDB,MongoDB Document, JSON vs. BSON 개념 정리 NoSQL이란? 접근방식이 SQL과는 상반되는 데이터베이스 형식을 얘기하거나 또는 관계형데이터베이스 뿐만아니라 다른 특성 까지도 갖는 (Not only SQL) 으로 정의할 수 있다. NoSQL은 매우 넓은 범위에서 사용하는 용어로, 관계형 테이블의 레거시한 방법을 사용하지 않는 데이터 저장소를 말한다. 다음과 같은 특징을 같는다. nosql 특징 1) RDBMS 처럼 고정된 스키마 및 JOIN이 존재하지 않는다. 자유로운 형태로 데이터를 저장할 수 있으므로 필요에 따라서 새로운 데이터 유형을 추가할 수 있다. 소프트웨어 개발에 정형화되지 않은 많은 양의 데이터가 필요한 경우, NoSQL이 효율적이다. 2) 스키마 변경(ALTER)가 필요없다. -스키마를 미리 준비할 필요가 없어서, 개발을 빠르게 해야하.. 2021. 8. 5.
ORM 개념 + im-sprint-shortly-mvc 리뷰 ORM이란? Object-Relational Mapping의 약자 ORM은 객체 지향 프로그래밍 언어(여기서는 자바스크립트)와 관계형 데이터베이스 간의 연결을 위한 프로그래밍 기법이다. 사실 Node.js MySQL 모듈 등을 사용하여 데이터베이스와 서버 간에 통신이 가능하다. node.js와 mysql을 연결하는 방식에는 몇가지 문제점들이 있다. 1)쿼리문이 길어지게 되면 이와 더불어 전체적인 코드 길이도 같이 길어지게 된다. 2)스키마가 변경되면 관련된 쿼리문들을 다 찾아서 변경해야한다. 유지보수가 쉽지 않다. 3) 관계형 데이터 베이스마다 쿼리문의 문법이 조금씩 달라지는데, 이는 필드에 정의되는 자료형도 마찬가지이다. 이러한 문제점들을 보완하고 효율성과 호환성을 높이기 위해 ORM을 사용하게 되었다.. 2021. 8. 5.
MVC모델 개념 MVC란? model view controller의 약자 일련의 소프트웨어가 돌아가는 하나의 패턴, 하나의 아이디어라고 생각하면 된다. 이것의 장점은 유지보수가 편해지는 코드 구성을 만들 수 있다. 역할에 따라 확실하게 분리하여 유지보수를 용이하게 하고 프로그램의 확장성과 유연성을 높이기 위한 기법이다. 데이터가 추가되면 Model 부분만 수정하고, UI가 수정되면 View 부분만 수정한다. 물론 Controller는 두 부분을 관장하기 때문에 일부 수정이 필요하다. 하지만 기존처럼 메인 다이얼로그/폼에서의 무분별한 하드 코딩이 필요 없다. MVC에는 model과 view, controller 라는 개념이 있다. 1. Model 데이터의 정보를 가지고 있다. 데이터베이스와 연결이 되있어서 데이터베이스랑 .. 2021. 8. 5.
반응형