Category: Network

0

Service Discovery 패턴

참고 https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/ https://velog.io/@hoonki/마이크로서비스-패턴-서비스-디스커버리 Service Discovery 패턴이 등장하게 된 배경기존 서비스 인스턴스의 개수와 IP 가 고정적이였던 온 프레미스 환경과 달리 MSA 환경에서는 Application 들이 AutoScaling 을 하면서 동적으로 줄었다가 늘어나면서 IP 자체도 동적으로 바뀌게 됐습니다. Client 나 Gateway 입장에서 서비스 인스턴스들이 동적으로 늘었는지 줄었는지에 대한 파악을 하기가 어려운 문제가 있었고 그에 따른 LoadBalancing 하는데 어려움이 있었습니다. Service Discovery 패턴에서는 Service EndPoint 를 조회 및 관리하기 위한 Service Registry 가 있습니다. MSA 의 각 서비스들은 Service Registry 에 자신의 EndPoint 들을 등록합니다. Service EndPoint 를 접근하는 방식에 따라 두가지로 나뉘게 됩니다. 첫번째는 Client-Side Discovery 두번째는 Server-Side Discovery 패턴이 있습니다. 출처: https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/ Client Side DiscoveryMSA 내 한 서비스가 다른 서비스를 호출할때 Service Registry 로 부터 EndPoint 를 조회한 후 해당 서비스를 호출하는 방식입니다.

0

네트워크 - STOMP

STOMP (Simple Text Oriented Messaging Protocol)WebSocket 프로토콜은 두 가지 유형의 메세지를 정의하고 있지만 그 메세지의 내용까지는 정의하고 있지 않는다. STOMP (Simple Text Oriented Messaging Protocol) 은 메세징 전송을 효율적으로 하기 위해 탄생한 프로토콜 기본적으로 pub/sub 구조로 되어있어 메세지를 전송하고 메세지를 받아 처리하는 부분이 확실히 정해져 있기 때문에 개발자 입장에서 명확하게 인지하고 개발할 수 있는 이점이 있다. 한 줄로 정의하자면, STOMP 프로토콜은 WebSocket 위에서 동작하는 프로토콜로써 클라이언트와 서버가 전송할 메세지의 유형, 형식, 내용들을 정의하는 매커니즘 이다. 또한 STOMP를 이용하면 메세지의 헤더에 값을 줄 수 있어 헤더 값을 기반으로 통신 시 인증 처리를 구현하는 것도 가능하며 STOMP 스펙에 정의한 규칙만 잘 지키면 여러 언어 및 플랫폼 간 메세지를 상호 운영할 수 있다.

0

네트워크 - Web Socket

웹 소켓 Web Socket 웹 소켓이란 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나, 현재 HTML5 에서 많이 사용하는 방식이다. WebSocket 프로토콜은 Text, Binary 두 가지 유형의 메세지를 정의하고 있지만 그 메세지의 내용까지는 정의하고 있지 않는다. 특징 양방향 통신 (Full-Duplex) 데이터 송수신을 동시에 처리할 수 있는 통신 방법 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있다. Http 통신은 Client 가 요청을 보내고 Server 가 요청에 대해 응답을 보내주는 단방향 통신 실시간 네트워킹 웹 환경에서 연속된 데이터를 빠르게 노출할 수 있다. Web Socket 이전 기술 위 기술들은 HTTP 위에서 동작하므로 Request, Response 둘다 Header 가 불필요하게 크다. Polling 서버로 일정 주기로 요청을 송신하는 방식이다. Real-time 통신에서는 언제 통신이 발생할지 예측이 불가능 하므로 주기적으로 Request 와 Connection을 생성한다. 불필요한 Request 와 Connection 을 위한 자원 Loss 가 발생 Long Polling 서버에서 요청을 보내고 이벤트가 생겨 응답 받을 때 까지 연결을 종료하지 않는다. 응답을 받으면 귾고 다시 재요청을 한다. 많은 양의 메시지가 쏟아질 경우 Polling 과 같다. Streaming 서버에 요청을 보내고 끊기지 않는 연결 상태에서 끊임 없이 데이터를 수신한다. 클라이언트에서 서버로의 데이터 송신이 어렵다.

0

SQL injection

SQL injection 이란 보안상의 허점을 이용해 사용자가 정의한 SQL 문외 조작된 SQL 을 주입하고 실행시켜 데이터베이스에 저장된 중요한 정보를 가져오는 공격 기법을 의미한다. Error Based SQL injection 논리적 에러를 이용한 SQL injection 잘못된 SQL 을 이용해 고의로 에러를 발생시는 공격 기법이다. 예외로 던저진 Message 를 통해 테이블 명과 컬럼과 같은 테이블 정보 를 얻어낼 수 있다. SQL 구문 정보를 변경해 사용자 인증을 우회해 접속할 수 있다. Union Based SQL injection Union 명령을 이용한 SQL injection 정상적으로 실행하는 쿼리와 정보를 탈취하기 위한 쿼리문을 Union 연산자를 통해 실행시킨다. 데이터 형식과 컬럼 수가 일치하면 Union 연산자를 이용해 데이터를 가져올 수 있다. SELECT uid FROM user_table WHERE uid='' UNION SELECT upw FROM user_table WHERE uid='admin' -- and...

0

네트워크 - CORS (Corss Site Resource Sharing)

SOP (Same Origin Policy)다른 출처의 리소스를 사용 못하도록 제한하는 보안 방식 CORS (Cross Origin Resource Sharing) 하나의 Origin 에서 실행 중인 웹 애플리케이션이 다른 Origin 내 리소스를 사용하는 것을 의미한다. 추가 HTTP 헤더를 이용해 한 출처에서 실행중인 웹 어플리케이션이 다른 출처의 선택된 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제 Request 내 Origin 헤더와 Response 내 Access-Control-Allow-Origin 헤더가 같으면 브라우저는 같은 출처로 인식한다. 해결 방법서버에서 Access-Control-Allow-Origin 헤더를 포함한 응답을 브라우저에 보내는 방식으로 CORS 에러를 해결할 수 있습니다. 프론트엔드 개발자가 CORS 에러를 확인했다면, 서버에 Access-Control-Allow-Origin 등 CORS를 해결하기 위한 몇 가지 응답 헤더를 포함해 달라고 요청해야 합니다. 출처 URL의 Protocol, Host, Port 를 합친 것을 의미한다.

0

네트워크 - CSRF (Corss Site Request For Forgery)

CSRF (Corss Site Request Forgery) CSRF 란 사이트 간 요청 위조의 의미로, 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해 특정 웹페이지를 보안에 취약하게 하거나 수정, 삭제 들의 작업을 하게 만드는 공격 방법공격자가 특정 사용자의 권한을 탈취해 특정 행위 (수정, 삭제, 등록 등) 를 사이트에 요청하게 만드는 공격 CSRF 를 위한 조건 권한이 있는 사용자가 사이트(서비스) 에 접속해야 한다. 사용자가 공격자가 만든 피싱 사이트에 접속하게 되면 CSRF 공격이 성립된다. 2008년에 발생했던 옥션의 개인정보 유출 사건에서도 관리자 계정을 탈취하는데 이 CSRF 방법을 이용 옥션 관리자가 메일을 조회하면서 CSRF 공격할 수 있는 테그가 들어간 이메일을 열어 해커가 관리자 권한을 취득하게 됨 <img src="http://auction.com/changeUserAcoount?id=admin&password=admin" width="0" height="0"> 방어 방법1. Referrer 검증

0

네트워크 - XSS (Cross-Site Scripting)

![]/images/computer-science/network/http/xss.png) XSS (Cross-Site Scripting) 공격자가 보안이 취약한 웹 사이트에 악성 스크립트를 삽입하는 공격 기법 XSS 를 통해 C&C (좀비 PC에 명령을 내리거나 악성 코드를 제어하는 서버) 로 리다이렉하거나 사용자의 쿠키를 탈취해 Session 하이재킹 공격을 할 수 있다. Persistent XSS 공격자가 심어놓은 특정 스크립트가 서버에 저장돼 지속적으로 서비스를 제공하는 정상 페이지에서 공격자에게 스크립트가 노출되는 기법 Relected XSS 웹 어플리케이션의 파라미터를 사용할 때 발생하는 취약점을 이용한 공격 기법 쿼리 파라미터로 특정 스크립트를 보냈을 때 서버가 필터링을 거치지 않고 파라미터로 포함된 스크립트를 응답 페이지에 담아 전송할 때 문제가 발생

0

네트워크 - HTTP 메시지 구조

네트워크 - OSI 7 계층과 TCP/IP 5계층 네트워크 - HTTP 네트워크 - HTTP Version 네트워크 - HTTP 메시지 구조 네트워크 - HTTPS Post not found: computer-science/network/tcp HTTP 메시지 구조 HyperText Transfer Protocol 의 약자로 HTML 문서를 전송하기 위해 만들어진 규약조건이다.HTTP는 TCP/IP 기반으로 되어있다. HTTP 통신 방식HTTP는 기본적으로 요청/응답 구조 Client 요청 MessageJson 데이터 curl –http1.1 http://localhost:8888/greeting -v -H “Content-Type: application/json” -d ‘{“hello”:”json”}’ POST /greeting HTTP/1.1Host: localhost:8888Accept: */*Content-Length: 16Content-Type: application/jsonUser-Agent: curl/7.71.1{"hello":"json"}

0

네트워크 - HTTP Version

HTTP Version 네트워크 - OSI 7 계층과 TCP/IP 5계층 네트워크 - HTTP 네트워크 - HTTP Version 네트워크 - HTTP 메시지 구조 네트워크 - HTTPS Post not found: computer-science/network/tcp HTTP/0.9 간단하게 HTML 객체 를 받아오기 위해 만들어진 프로토콜이다. 때문에 GET메서드 만을 지원한다. 멀티미디어 콘텐츠에 대한 MIME 타입이나, HTTP 해더, 버전 번호는 지원하지 않는다. HTTP/1.0 버전 번호, HTTP 헤더, 추가 메서드, 멀티미디어 객체 처리를 추가했다. 웹페이지와 상호작용하는 폼을 실현 하나의 커넥션에 하나의 요청과 하나의 응답만 가능 요청GET /greeting HTTP/1.0Host: localhost:18888Connection: closeAccept: */*User-Agent: curl/7.71.1 응답

0

네트워크 - HTTPS

네트워크 - OSI 7 계층과 TCP/IP 5계층 네트워크 - HTTP 네트워크 - HTTP Version 네트워크 - HTTP 메시지 구조 네트워크 - HTTPS Post not found: computer-science/network/tcp 네트워크 - HTTPSHTTPS의 마지막 S는 Over Secure Socket Layer의 약자로 보안이 강화된 HTTP라는 것을 알 수 있다. SSL/TLS 에서 HTTP 가 작동할 경우 HTTPS 라고 부른다. HTTPS 와 SSL 이 같은 것이 아닌 SSL 위에 올라가는 프로토콜 중 하나가 바로 HTTPS 다. 암호화 이점 기밀성의 원칙 에서 보면 통신 내용이 공격자에게 노출(snipping) 되는 것을 막을 수 있다. 무결성의 원칙 에서 보면 통신 내용을 타인이 함부로 변경 하는 것을 막을 수 있다. 기밀성의 원칙과 무결성의 원칙을 통해 서버와 클라이언트는 서로 신뢰를 할 수 있다. SSL (Secure Socket Layer)-

0

네트워크 - HTTP

네트워크 - OSI 7 계층과 TCP/IP 5계층 네트워크 - HTTP 네트워크 - HTTP Version 네트워크 - HTTP 메시지 구조 네트워크 - HTTPS Post not found: computer-science/network/tcp HTTP란 HyperText Transfer Protocol 의 약자로 HTML 문서를 전송하기 위해 만들어진 규약조건이다.HTTP는 TCP/IP 기반으로 되어있다. Client - Server 구조 Stateless (무상태) 프로토콜 비 연결성 Client - Server 구조 클라이언트는 서버에 요청을 보내고 서버로부터 응답을 기다리는 단방향 통신 구조 Request Response 구조 Stateless (무상태) 프로토콜

0

네트워크 - OSI 7 계층과 TCP/IP 5계층

네트워크 - OSI 7 계층과 TCP/IP 5계층 네트워크 - HTTP 네트워크 - HTTP Version 네트워크 - HTTP 메시지 구조 네트워크 - HTTPS Post not found: computer-science/network/tcp 네트워크 - OSI 7 계층과 TCP/IP 5계층 OCI 7 계층 다양한 컴퓨터 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구(ISO) 에서 만든 개념 모델이다. OSI 표준 모형은 7계층으로 이루어져 있다. 계층별로 역할을 분리해서 각 계층이 독립적으로 기능을 수행하고, 계층 간 통신을 통해 전체 통신 프로세스를 가능하게 한다. TCP/IP 5 계층 프로토콜 프로토콜 : source와 target간의 데이터를 어떻게 주고 받을 지에 대한 규약(방법)이다. 크게는 동기식 과 비동기식 으로 나뉘게 된다.

0

네트워크 - HTTP Status Code

HTTP Status Code1xx (Information) - 정보성 상태 코드 Http Status Code는 HTTP/1.1 에서 도입된 상태 코드 2xx (Successful) - 성공 상태 코드 코드 설명 200 : OK 요청 성공했음을 나타낸다. 201 : Created 요청이 성공하고 새로운 리소스가 생성됐음을 나타낸다. 202 : Accepted 요청은 성공했으나 서버가 아직 작업을 진행하지 않은 상태를 나타낸다. 204 : No Content 요청이 성공했고 Server에서 Client로 보낼 데이터가 없는 상태를 나타낸다. 3xx (Redirection) - 리다이렉션 상태 코드 코드 설명 300 : Multiple Choices 리소스의 URI가 영구적으로 이동 301 : Moved Permanently 302 : Found 303 : See Other 304 : Not Modified 307 : Temporary Redirect 308 : Permanent Redirect 4xx (Client Error) - 클라이언트 오류

0

네트워크 - TCP

TCP(Transmission Control Protocol) TCP 서비스 연결 지향의 신뢰성이 있는 바이트 스트림 서비스를 제공한다. 양방향 통신을 지원한다.(Full-Duplex Communication) 흐름제어와 에러제어, 그리고 혼잡제어를 제공한다.(신뢰성 있는 전송) 신뢰성 있는 전송이란? 데이터가 손실, 중복되지 않고 순서가 어긋나지 않는 전송방식 바이트 스트림 서비스란? 데이터 송 수신시 버퍼 기능을 이용해 Byte 단위로 처리

0

클라우드 서비스

클라우드 서비스 종류IaaS(Infrastructure as a Service)인프라를 제공하는 방식 - 컴퓨터를 대여해주는 거라고 생각하면 이해하기 쉽다. 아마존의 AWS, MS의 Azure, 구글의 GCP Platform as a Service플랫폼을 제공하는 방식 - IaaS 서비스에 Runtime환경까지 설정이 이미 되어 있기 때문에 Software as a Service특정 소프트웨어를 제공하는 방식 - 드랍박스, 구글 Docs, 오피스365 장점 컴퓨팅 환경을 빠르게 구축할 수 있다는 장점이 있다. 사용한 만큼만 돈을 지불하면 된다. 특정기간 트래픽이 폭주하는 경우에 자원의 리소스 추가와 삭제가 기존의 on-premise방식에 비해 용이하다. 서버를 관리하기 위한 물리적 공간과 인적 자원에 대해 신경쓸 필요가 없어진다.