Web 9

CORS 개요 및 동작 방식

CORS(교차 출처 리소스 공유, Cross-Origin Resource Sharing)는 웹 애플리케이션이 다른 출처의 리소스에 접근할 때 보안을 유지하면서 이를 허용할 수 있도록 해주는 중요한 웹 표준이다. 주로 동일 출처 정책(SOP, Same-Origin Policy)과 함께 설명된다.  동일 출처 정책(SOP, Same-Origin Policy)동일 출처 정책은 웹 보안 모델로 웹 페이지가 자신과 동일한 출처(origin)의 리소스에만 접근할 수 있도록 제한하는 방식이다. "출처"는 URL의 프로토콜, 도메인, 그리고 포트 번호로 정의되며 이 세 가지가 모두 동일해야만 "동일 출처"로 간주된다. SOP는 악의적인 사이트가 다른 출처의 중요한 데이터를 무단으로 가져가지 못하도록 하는 강력한 보안 ..

Web 2024.10.16

TLS(Transport Layer Security)

TLS의 도입 배경네트워크 통신에서 TLS가 도입된 이유는 기존의 네트워크 프로토콜들이 다음과 같은 여러 가지 보안 문제를 가지고 있기 때문이다. 데이터 도청 (Eavesdropping)네트워크 상의 데이터를 전송하는 동안 그 데이터는 중간에 있는 라우터, 스위치, 네트워크 장비들을 거쳐간다. 이러한 장비들에서 데이터를 쉽게 볼 수 있으며 누구나 데이터를 훔쳐볼 수 있다예를 들어, 패킷을 중간에서 감청하여 사용자의 로그인 정보나 개인 정보를 얻을 수 있다위장 공격 (Man-in-the-Middle Attack)공격자가 중간에 위치하여 사용자와 서버 간의 통신을 가로채고 사용자가 원하는 대상 서버인 척하면서 데이터를 주고받는 공격이다이로 인해 사용자는 자신이 신뢰하는 서버와 통신한다고 생각하지만 실제로는 ..

Web 2024.09.19

Forward Proxy와 Reverse Proxy의 차이

프록시(Proxy) 서버의 기본 개념프록시 서버는 클라이언트와 서버 사이에서 중계기 역할을 하며, 클라이언트의 요청을 받아 서버에 전달하고 서버의 응답을 다시 클라이언트에게 전달하는 역할을 한다.프록시 서버는 캐시를 통해 자원을 관리하고 클라이언트의 요청과 응답을 확인하여 데이터 조작이 가능하다.프록시 서버는 네트워크 트래픽을 줄이고 응답 속도를 향상시키며 보안성과 익명성을 제공한다.  포워드 프록시 (Forward Proxy)포워드 프록시는 클라이언트가 서버에 직접 연결하지 않고 프록시 서버를 통해 요청을 전달하는 방식주요 기능 및 특징클라이언트의 대리자 : 클라이언트의 요청을 대신 서버로 전달하고 서버의 응답을 받아 클라이언트에게 전달합니다. 클라이언트의 IP 주소를 숨기기 때문에 익명성이 보장된다캐..

Web 2024.09.19

HTTP 요청-응답 흐름의 개요

웹에서 브라우저와 서버 간의 통신은 HTTP(하이퍼텍스트 전송 프로토콜)를 통해 이루어진다. 이 과정에서 클라이언트(주로 브라우저)가 서버에 특정 요청(Request)을 보내고 서버는 해당 요청을 처리한 후 응답(Response)을 클라이언트에게 반환하는 방식으로 동작한다. 이 흐름은 웹 애플리케이션의 기본 작동 원리로 사용자가 URL을 입력하거나 버튼을 클릭할 때마다 발생한다.   요청(Request) 과정URL 해석 : 브라우저는 사용자가 입력한 URL(Uniform Resource Locator)을 해석하여 요청할 자원의 위치를 파악한다. URL은 다음과 같은 요소들로 구성되어 있다.프로토콜(예: http, https) : 통신 규칙을 정의도메인(예: www.example.com) : 서버의 위치를..

Web 2024.09.12

API vs Library vs Framework

API, 라이브러리, 프레임워크는 소프트웨어 개발에서 자주 사용되는 용어이지만, 각 개념은 서로 다른 역할과 특징을 가지고 있다. 이 세 가지를 이해하는 것은 개발자에게 매우 중요한데, 각 개념을 일반적인 지식과 함께 쉽게 살펴보겠다. API (Application Programming Interface)API는 두 프로그램이 서로 소통할 수 있도록 해주는 인터페이스이다. 쉽게 말해, 프로그램들이 특정 기능을 요청하고 그에 대한 응답을 받는 방식으로 동작하는 '다리'라고 볼 수 있다.예시지도를 활용한 서비스를 만들고 싶다면, 직접 지도를 개발하는 대신, 구글 맵 API와 같은 서비스를 통해 지도를 불러올 수 있다. API를 통해 다른 프로그램의 기능을 사용할 수 있기 때문에 개발자는 시간을 절약하고 보다..

Web 2024.09.09

TCP와 UDP

TCP와 UDP는 네트워크 통신의 중요한 전송 계층 프로토콜이다. 이들은 각기 다른 방식으로 데이터를 전송하며 다양한 상황에서 최적의 선택을 하도록 설계되어있다. 아래는 TCP와 UDP의 차이점과 각각의 특징들에 대한 내용이다.  전송 계층(Transport Layer)네트워크 모델에서 전송 계층은 컴퓨터 간 데이터를 안전하고 효율적으로 전송하는 역할을 한다. TCP와 UDP는 이 계층에서 동작하며 데이터를 주고받는 방식에 따라 다르다. TCP (Transmission Control Protocol)신뢰성 보장 : TCP는 데이터를 안전하게 전달하기 위해 연결 기반(Connection-oriented) 방식으로 동작한다. 데이터가 손실되거나 손상되면 이를 재전송하여 데이터의 신뢰성을 보장한다.3-way ..

Web 2024.09.06

OAuth 2.0의 개념과 동작방식

OAuth 2.0은 안전한 API 인증을 제공하기 위해 설계된 인증 프레임워크이다. 주로 사용자가 자신의 자격 증명을 제3의 애플리케이션에 제공하지 않고도 자신의 계정에 액세스할 수 있도록 허용하는 방식으로 사용된다. 이를 통해 보안성이 강화되고, 사용자는 개인 정보를 보호할 수 있다.  OAuth 2.0의 주요 개념Resource Owner (리소스 소유자) : 사용자 또는 리소스를 소유하고 있는 주체이다. 사용자는 자신의 자격 증명을 사용하여 애플리케이션에 접근 권한을 부여할 수 있다.Client (클라이언트) : 리소스 소유자의 자원에 접근하고자 하는 애플리케이션. 클라이언트는 사용자의 승인을 받아 리소스에 접근할 수 있는 토큰을 얻는다.Authorization Server (인증 서버) : 클라이..

Web 2024.09.04

인증(Authentication)과 인가(Authorization)

웹 개발에서 "인증"과 "인가"는 보안 시스템의 핵심 요소다. 두 개념은 비슷해 보이지만, 서로 다른 목적을 가지고 있으며, 다양한 웹 애플리케이션 및 시스템에서 사용된다. 1. 인증 (Authentication)인증은 사용자가 자신이 주장하는 사람임을 확인하는 과정이다. 즉, 인증은 "누구인가?"에 대한 질문에 답하는 과정이다. 주로 사용자가 시스템에 접근하려 할 때 이루어지며, 이를 통해 사용자가 제공하는 정보가 등록된 사용자 정보와 일치하는지 확인한다.인증의 방법비밀번호 기반 인증 : 가장 일반적인 형태로, 사용자 이름과 비밀번호를 요구한다. 비밀번호가 시스템에 저장된 것과 일치하면 사용자가 인증된다.다중 인증 (MFA, Multi-Factor Authentication) : 비밀번호 외에 추가적인..

Web 2024.09.03

RESTful

REST(Representational State Transfer)란?REST는 웹 애플리케이션을 설계하기 위한 아키텍처 스타일로, 자원의 표현(Representation)을 통해 상태를 전달(State Transfer)하는 것을 의미한다. RESTful 시스템은 이러한 아키텍처 스타일의 제약 조건을 모두 만족하는 시스템을 의미한다. REST의 주요 제약 조건클라이언트-서버 구조 : 클라이언트와 서버의 역할을 명확히 구분하여, 서로의 기능에 집중할 수 있도록 한다.무상태성(Stateless) : 서버는 각 요청을 독립적으로 처리하며, 클라이언트의 상태를 서버에 저장하지 않는다. 모든 필요한 정보는 요청에 포함되어야 한다.캐시 가능(Cacheable) : 서버의 응답은 명시적으로 캐시가 가능한지 여부를 나..

Web 2024.08.30
반응형