1. 세션 하이재킹1.1 정의 세션 하이재킹 공격은 두 시스템 간 연결이 활성화된 상태, 즉 로그인된 상태를 가로채는 것을 말한다. 서버와 클라이언트가 TCP를 이용해서 통신하고 있을 때, RST 패킷을 보내 일시적으로 TCP 세션을 끊고 시퀀스 넘버를 새로 생성해 세션을 빼앗아 인증을 회피하는 공격이다. 세션 하이재킹은 세션 가로채기라고 한다. 세션이 사용자와 컴퓨터, 또는 두 대의 컴퓨터 간의 활성화된 상태를 나타낸다. 가장 쉬운 세션 하이재킹은 누군가 작업을 하다가 잠시 자리를 비운 PC를 몰래 사용해 원하는 작업을 하는 것이다. 1.2 위험성시스템을 침투하는 방법 중에서 가장 어려운 분야 중에 하나가 정당한 접근 권한을 획득하기 위한 패스워드를 얻는 일이다. 정당한 접근 권한을 획득한 사용자가 패..
1. 스니핑1.1 정의 패킷 가로채기 또는 스니핑(snipping)은 네트워크 통신 내용을 도청하는 행위이다. 이때 사용되는 도구를 패킷 분석기(packet analyzer/network analyzer) 또는 패킷 스니퍼(packet sniffer/network sniffer)라고 하며, 네트워크의 일부나 디지털 네트워크를 통하는 트래픽의 내용을 저장하거나 가로채는 기능을 하는 소프트웨어 또는 하드웨어이다. 프로토콜 분석기라고도 불리며, 특정한 종류의 네트워크에서는 이더넷 스니퍼(ethernet sniffer) 또는 무선 스니퍼(wireless sniffer)라고 불린다. 데이터 스트림은 네트워크를 통해 흐르며, 스니퍼는 각 패킷을 잡아 내서 디코딩하여, 적절한 RFC나 다른 규격에 따라 내용을 분석한..
1. 웹 해킹1.1 정의웹 해킹(영어: web hacking)은 웹 사이트의 취약점을 공격하는 기술적 위협으로, 웹 페이지를 통하여 권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴와 같은 행위를 말한다. 1.2 위험성 1. 최근 발생하는 모든 Hacking 중 75% 이상이 Web Application의 취약성을 악용한 공격이다. 2. Web Application 계층의 공격은 방화벽, 침입탐지시스템, 침입차단시스템 등으로 방어할 수 없다. 3. e-business를 위해서 80포트는 오픈 될 수 밖에 없다. 4. Web Application 계층의 악의적인 공격은 24시간 365일 운영되어야 하는 Web Service를 중단시킬 수 있다. 1.3 공격법XSS - XSS(Cross-Site Scri..
이 문서는 패스트캠퍼스 오프라인 강의를 위해서 준비된 문서이기에, 일부 내용들은 설명이 생략되어있을 수도 있습니다.이번 강의에서 다룰 주제는 리덕스 미들웨어를 사용하여 외부 데이터를 연동하는 방법을 다뤄보겠습니다.외부 데이터를 연동하기 위해서 리덕스, 그리고 리덕스 미들웨어들이 꼭 필요한것은 아닙니다. 리액트 컴포넌트와 내부 state 만을 사용하여 모든 것 들을 할 수 있어요. 하지만, 좋은 도구들과 함께하면 좋은 개발자경험 (Developer Experience)이 따라옵니다.어플리케이션을 만듬에 있어서는, UX 도 매우 중요하지만, 이를 개발하는 개발자들의 정신건강을 위하여, 개발자경험 또한 놓칠 수 없습니다. 네트워크 요청의 상태 관리와 전달받은 데이터 상태 관리를 효율적이고 쉽게 할 수 있도록,..
이 포스트는 React 에서는 불변함 (Immutability) 를 지키며 상태 관리를 하는 것을 매우 편하게 해주는 라이브러리 Immutable.js 에 대해서 알아보겠습니다.서론리액트를 사용하신다면, Immutability 라는 말, 한번쯤은 들어보셨을겁니다. 리액트 컴포넌트의 state 를 변경해야 할 땐, 무조건, setState 를 통해서 업데이트 해주어야 하며, 업데이트 하는 과정에서 기존의 객체의 값을 직접적으로 수정하면 절대!! 안됩니다.예를 들어서 컴포넌트의 state 에 users 라는 배열이 있다고 가정해봅시다.state = { users: [ { id: 1, username: 'velopert' } ] };자, 우리가 만약에 이 users 배열에 새로운 객체를 추가한다면 어떻게 해야..
이 포스트는 이어지는 튜토리얼 입니다. 1편 을 먼저 읽고 오시길 바랍니다.리덕스의 3가지 규칙리덕스를 프로젝트에서 사용하게 될 때 알아둬야 할 3가지 규칙이 있습니다.1. 하나의 애플리케이션 안에는 하나의 스토어가 있습니다.하나의 애플리케이션에선 단 한개의 스토어를 만들어서 사용합니다. 사실, 권장되지는 않습니다. 여러개의 스토어를 만들고 싶다면 만들 수는 있습니다. 특정 업데이트가 너무 빈번하게 일어나거나, 애플리케이션의 특정 부분을 완전히 분리시키게 될 때 그렇게 여러개의 스토어를 만들 수도 있습니다. 하지만 그렇게 하면, 개발 도구를 활용하지 못하게 됩니다.2. 상태는 읽기전용 입니다.리액트에서 state 를 업데이트 해야 할 때, setState 를 사용하고, 배열을 업데이트 해야 할 때는 배열..
이 포스트는 리덕스의 리도 모르는 독자들을 대상으로 작성된 글입니다. 리덕스가 왜 필요한지 알아보고, 리덕스를 편리하게 사용하기 위한 발악을 한번 해보겠습니다.리덕스 왜 쓸까?리액트애서 애플리케이션을 만들 때, 기본적으로는 보통 하나의 루트 컴포넌트 (App.js) 에서 상태를 관리합니다. 예를들어서, 투두리스트 프로젝트에서는, 다음과 같은 구조로 상태가 관리되고 있죠. 리액트 프로젝트에서는 대부분의 작업을 할 때 부모 컴포넌트가 중간자 역할을 합니다.컴포넌트 끼리 직접 소통 하는 방법은 있긴 하지만, 그렇게 하면 코드가 굉장히 많이 꼬여버리기 때문에 절대 권장되지 않는 방식입니다. (ref 를 사용하서 이러한 작업을 할 수 있긴 하죠.)App 에서는 인풋의 값인 input 값과, 이를 변경하는 onCh..
이번 강좌는 MongoDB의 Index에 관한 내용입니다.Index란?Index는 MongoDB에서 데이터 쿼리를 더욱 효율적으로 할 수 있게 해줍니다. 인덱스가 없이는, MongoDB는 collection scan – 컬렉션의 데이터를 하나하나 조회 – 방식으로 스캔을 하게 됩니다. 만약 document의 갯수가 매우 많다면, 많은 만큼 속도가 느려지겠죠? 이 부분을 향상시키기 위하여 인덱스를 사용하면 더 적은 횟수의 조회로 원하는 데이터를 찾을 수 있습니다.Document의 필드(들) 에 index 를 걸면, 데이터의 설정한 키 값을 가지고 document들을 가르키는 포인터값으로 이뤄진 B-Tree를 만듭니다. 여기서 B-Tree는 Balanced Binary search Tree 인데요, B-Tr..
- Total
- Today
- Yesterday