CS 42

CSRF

CSRF (Cross-Site Request Forgery) 1. CSRF는 교차 사이트 요청 위조를 의미함. 2. 공격자가 사용자의 신뢰를 악용해, 사용자가 의도하지 않은 요청을 서버에 보내도록 만드는 보안 취약점임. 3. 사용자가 웹사이트(A)에 로그인한 상태에서 악성 링크를 클릭하거나 스크립트를 실행할 때 발생함. 4. 서버는 사용자가 보낸 요청으로 착각해 작업을 수행하게 됨.작동 원리 1. 사용자가 웹사이트(A)에 로그인해서 세션을 유지 중임. 2. 공격자가 악성 링크를 포함한 이메일이나 메시지를 사용자에게 보냄. 3. 사용자가 해당 링크를 클릭하면, 공격자가 의도한 요청이 사용자의 세션 정보와 함께 서버로 전송됨. 4. 서버는 요청을 정상적인 사용자 요청으로 간주하고 처리함.대응 방법 1. CS..

CS 2025.01.19

HTTP, HTTPS

HyperText Transfer Protocol, HyperText Transfer Protocol Secure웹에서 클라이언트(웹 브라우저)와 서버 간에 데이터를 전송하기 위한 프로토콜HTTP : 데이터를 암호화 하지 않고 전송한다HTTPS : 데이터를 암호화 하여 전송하며, HTTP보다 더 안전하다HTTP특징1. 비암호화HTTP로 전송된 데이터는 암호화되지 않으므로, 중간에 데이터가 탈취되면 내용을 그대로 확인할 수 있다2. 속도암호화를 하지 않기 때문에 HTTPS보다 속도가 빠르지만, 보안이 취약하다3. 구조클라이언트가 요청(Request)를 보내고, 서버가 응답(Response)을 반환하는 요청-응답 구조로 동작한다4. 포트 번호기본 포트 : 805. 사용 예간단한 웹 페이지, 보안이 필요없는 ..

CS 2025.01.15

JWT (JSON Web Token)

JSON 형식의 데이터를 사용하여 정보를 안전하게 전달하기 위한 토큰 기반 인증 방식암호화를 통해 데이터의 무결성과 신뢰성을 보장하며, 주로 인증과 권한 부여에 사용된다 구성세부분으로 구성되며, 각 부분은 . 으로 구분된다Header.Payload.Signature 1. Header토큰의 타입(JWT)과 암호화 알고리즘 정보를 포함{ "alg": "HS256", // HMAC SHA-256 알고리즘 "typ": "JWT" // 토큰 타입} 2. Payload실제 전달하고자 하는 데이터(클레임)를 포함클레임(Claims)은 키-값 쌍으로 이루어진 데이터로, 사용자 정보나 토큰 관련 정보를 저장클레임 종류Registered Claims : 토큰에 미리 정의된 표준 정보 (예 : iss, exp, su..

CS 2025.01.14

API Key

클라이언트가 API 서버와 통신할 때 인증을 위해 사용하는 고유한 문자열 또는 토큰주로 API 사용자의 신원을 확인하거나, 요청을 추적하고, 사용 권한을 제어하기 위해 사용됨 특징1. 고유 식별자각 클라이언트나 애플리케이션에 대해 고유하게 발급된다2. 간단한 인증 방식키만 제공하면 인증이 이루어지므로 구현이 간단하다3. 서버-클라이언트 보안요청하는 클라이언트를 식별하고 요청을 승인하거나 거부할 수 있다4. 사용량 추적 가능사용량 제한(예 : 초당 요청 수)을 적용해 API 남용을 방지한다구조보통 긴 문자열로 구성되며, 무작위로 생성됨d1f7f85c-1f03-4d33-a9e3-b2e1f3a4d512사용법1. HTTP 헤더요청 헤더에 API Key를 포함GET /api/resource HTTP/1.1Host..

CS 2025.01.13

Bearer Token

API 인증 및 권한 부여에 사용되는 OAuth 2.0 프로토콜의 중요한 구성 요소이 토큰을 소지한 사람은 인증된 것으로 간주된다 라는 의미를 가진다 특징1. 간단한 인증 방식클라이언트가 서버에 요청할 때 토큰을 포함하여 요청하면 서버는 토큰을 확인하고 인증 및 권한을 부여한다2. 토큰 기반 인증사용자 이름과 비밀번호 대신 토큰을 사용해 보안을 강화한다3. Stateless서버가 세션 정보를 유지하지 않고, 요청마다 토큰을 검사한다4. 보안 중요토큰이 탈취되면 악의적인 사용자가 이를 통해 요청을 보낼수 있다사용 방법HTTP 요청 예제HTTP 요청의 헤더에 포함되어 전송된다GET /api/resource HTTP/1.1Host: example.comAuthorization: Bearer  Authoriza..

CS 2025.01.12

URI , URL

URI (Uniform Resource Identifier)정의 :URI는 리소스를 식별하는 문자열즉, 웹 상의 리소스(문서, 이미지, 비디오 등)를 고유하게 나타내기 위한 표준 형식 종류 :URI는 두 가지 주요 하위 개념으로 나뉨  1. URL (Uniform Resource Locator)리소스의 위치를 나타냄 (예: http://example.com/file.txt) 2. URN (Uniform Resource Name)리소스의 고유한 이름을 나타냄 (예: urn:isbn:0451450523) 예 :http://example.com/resource (URL로 사용된 URI)urn:isbn:0451450523 (URN으로 사용된 URI)URL (Uniform Resource Locator)정의 :U..

CS 2025.01.11

레거시 소스

오래된 시스템이나 코드베이스를 의미현재의 최신 기술이나 표준을 따르지 않는 과거에 작성된 코드를 말한다 특징1. 오래된 기술 스택과거에 사용되던 기술로 작성되어 최신기술과 호환성이 떨어질 수 있다예 : COBOL, FORTRAN, VBScript 등2. 복잡한 코드 구조코드가 점점 누적되면서 복잡도가 증가하며, 이해하기 어려운 구조가 될 수 있다3. 문서화 부족작성 당시 문서화가 잘 되어 있지 않거나 문서가 오래되어 최신 상태가 아닐 수 있다4. 의존성 문제오래된 라이브러리나 프레임워크에 의존하고 있어 최신 환경에서 동작하지 않을 가능성이 큼5. 안정성레거시 소스 오래된 만큼 안정적으로 동작하는 경우가 많지만, 유지보수나 확장이 어려움장점 1. 검증된 안정성 :오랜 시간 사용되었기 때문에 잘 작동하고 안..

CS 2025.01.05

REST API

웹에서 자원을 관리하고 상호작용하는 표준을 정의한 것 기본개념1. 자원(Resource)자원은 시스템이 제공하는 데이터 또는 기능REST에서 자원은 URI로 표현된다예 : https://api.example.com/users2. 행위(Verb)클라이언트가 자원을 어떻게 처리할지 HTTP 메서드를 통해 명시한다GET : 자원을 조회POST : 자원을 생성PUT : 자원을 수정DELETE : 자원을 삭제3. 표현(Representation)클라이언트와 서버가 자원에 대해 상호작용할 때, 자원의 표현을 교환한다예 : JSON, XML, HTML 등으로 데이터를 표현4. 상태 무저장성(Stateless)서버는 클라이언트의 상태를 저장하지 않는다각 요청은 독립적이며, 필요한 모든 정보를 요청에 포함해야 한다특징1..

CS 2025.01.03

HTTP 상태코드

1. 상태코드 범위 및 설명범위의미설명1xx정보요청이 처리중임을 나타냄2xx성공요청이 성공적으로 처리됨3xx리다이렉션클라이언트가 다른 URL로 요청을 다시 보내야함4xx클라이언트 오류클라이언트의 요청에 문제가 있음5xx서버 오류서버가 요청을 처리하지 못함 2. 주요 상태 코드1xx : 정보코드설명예시100Continue클라이언트 요청의 일부를 받아들였으며 계속 요청을 진행하라는 뜻101Swtiching Protocols프로토콜 전환 요청이 수락되었음을 나타냄2xx : 성공코드설명예시200OK요청이 성공적으로 처리됨201Created요청에 의해 리소스가 성공적으로 생성됨202Accepted요청이 수락되었으나 아직 처리되지 않음204No Content요청이 성공했으나 응답 본문이 없음3xx : 리다이렉션코드..

CS 2025.01.02

HTTP 메서드

클라이언트(브라우저)가 서버와 통신할때 요청의 목적을 명확히 하기 위해 사용주요 HTTP 메서드와 목적메서드설명주요 목적GET서버에서 데이터를 조회데이터를 가져올 때 사용POST서버에 데이터를 전송 및 생성데이터를 생성하거나 제출할때 사용PUT서버의 데이터를 전체 수정데이터를 수정하거나 업데이트할때 사용PATCH서버의 데이터를 부분 수정데이터의 일부를 업데이트 할때 사용DELETE서버의 데이터를 삭제데이터를 삭제할때 사용OPTIONS서버에서 허용하는 메서드 조회요청 가능한 메서드 목록 확인HEAD요청에 대한 헤더만 반환응답 데이터 없이 헤더 정보만 확인1. GET목적 : 서버에서 데이터를 요청하고 받아오는데 사용특징 :데이터를 요청할때 URL에 쿼리 문자열로 전달요청한 데이터만 서버가 반환하며, 서버 상..

CS 2024.12.28