Computer Science/Web

Computer Science/Web

[Web] CSRF & XSS

CSRF (Cross Site Request Forgery) CSRF는 웹 어플리케이션 취약점 중 하나로, 공격자가 특정 웹사이트에 사용자의 의지와 무관하게 특정한 행위를 요청하도록 만드는 공격이다. 이러한 공격을 통해 공격자는 사용자의 권한을 도용하여 중요한 기능을 실행할 수 있다. CSRF 공격 순서 공격자의 스크립트가 포함된 게시물 : 공격자는 악의적인 스크립트가 포함된 게시물을 작성하거나 게시판, 이메일 등을 통해 다른 사용자에게 전송한다. 이 스크립트는 공격을 실행할 수 있는 요청을 트리거하는 역할을 한다. 사용자의 확인 : 이 게시물을 사용자가 확인한다. 이때, 사용자는 악의적인 스크립트가 포함된 게시물을 열람하게 된다. CSRF 스크립트 실행 : 악의적인 스크립트가 열린 순간, 스크립트는 사..

Computer Science/Web

[Web] 네이티브 앱 & 웹 앱 & 하이브리드 앱

네이티브 앱(Native App) 네이티브 앱은 각 모바일 운영체제(Android 및 iOS)에 최적화된 방식으로 개발된다. 안드로이드 앱을 Java 또는 Kotlin으로, iOS 앱은 Swift 또는 Objective-C로 개발된다. 장점 구동 속도가 빠르고 안정적이다. 기기의 모든 기능(카메라, GPS 등)에 쉽게 접근할 수 있다. 높은 그래픽 품질과 사용자 정의 디자인을 구현할 수 있다. 단점 두 가지 운영체제용 앱을 별도로 개발해야 하기 때문에 개발 비용과 시간이 많이 들 수 있다. 앱 업데이트시 앱 스토어의 심사를 거쳐야 한다. 모바일 웹 앱(Mobile Web App) 모바일 웹 앱은 HTML, CSS, JavaScript를 사용하여 웹 기술로 개발된다. 웹 브라우저를 통해 접근하므로 앱을 설..

Computer Science/Web

[Web] CSR & SSR

CSR과 SSR은 웸 애플리케이션의 프론트엔드 렌더링 방식에 대한 두 가지 주요 접근 방식이다. SSR(Server Side Rendering) SSR은 서버 측에서 웹 애플리케이션의 초기 렌더링을 담당하는 방식이다. 클라이언트에서 요청이 들어올 때마다 서버에서 view 를 만들어서 제공한다. 장점 검색 엔진 최적화(SEO) : 서버에서 초기 렌더링을 수행하므로 검색 엔진 크롤러에게 콘텐츠를 쉽게 이해할 수 있는 HTML을 제공할 수 있다. 초기 로딩 성능 개선 : 첫 번째 페이지 로딩 시 서버에서 렌더링된 HTML을 클라이언트로 전달하므로 초기 로딩 성능이 개선된다. 단점 프로젝트 복잡도 : 라우터를 사용하다보면 복잡도가 높아질 수 있다. 성능 악화 가능성 : 매번 서버에서 렌더링을 수행하면 서버 자원..

Computer Science/Web

[Web] Logging Level

Logging Level 로깅 레벨은 로그 메시지의 중요도를 정의하는 기준이다. 소프트웨어나 애플리케이션에서 발생하는 로그는 각각 다른 중요도와 의미를 가지며, 이를 구분하여 적절하게 다루기 위해 로깅 레벨을 사용한다. 총 8단계로 구성되며 ALL과 OFF는 거의 쓰지 않고 6단계를 사용하고 있다. Logging Level의 종류 1. TRACE 가장 상세한 로그 레벨로, 주로 디버깅 목적으로 사용된다. 코드의 특정 부분이 실행될 때마다 세부 정보를 로그로 남기며 일반적으로 배포 환경에서는 사용하지 않는다. 2. DEBUG 디버그 목적으로 사용되며, 프로그램 실행 중 발생하는 중간 결과나 변수 값을 확인할 수 있는 정보를 로그로 남긴다. 배포 환경에서는 일반적으로 사용하지 않는다. 3. INFO 일반적인..

Computer Science/Web

[Web] 인증 방식

API Key API Key는 다양한 서비스 간의 통신을 보장하고 보안을 유지하기 위한 인증 수단 중 하나이다. API Key는 사용자가 해당 서비스를 사용할 권한을 부여받을 수 있는 키로, 사용자 식별 및 권한 관리에 사용된다. 동작 방식 사용자는 서비스에서 API Key를 발급받는다. API를 호출할 때, API Key를 함께 요청에 포함시켜 서버로 전송한다. 서버는 API Key를 검증하여 사용자 식별 및 권한을 확인한 후 응답한다. 문제점 키 유출 시 보안상의 문제가 발생할 수 있다. 따라서, 주기적인 업데이트와 관리가 필요하며 이때 한 쪽만 업데이트 되는 예외상황이 발생할 수 있다. 키 하나로 암복호화하므로 보안 문제가 발생하기 쉽다. OAuth2 API Key의 한계를 극복하고 사용자 경험을 ..

Computer Science/Web

[Web] JWT (JSON Web Token)

JWT(JSON Web Token) 서버와 클라이언트 간의 정보를 안전하게 전달하기 위해 사용되는 토큰 기반의 인증 방식 텍스트 기반의 토큰 → 정보를 JSON 형식으로 인코딩하여 사용자 정보나 권한 정보를 포함 클라이언트가 서버로 요청을 보낼 때마다 헤더에 첨부되어 전송 → 서버는 해당 토큰을 검증하여 인증 및 권한을 확인 JWT의 구성 요소 Header 토큰의 베타 정보를 담고 있다. 주로 토큰의 유형과 서명 알고리즘을 명시 Base64로 인코딩되어 토큰의 첫 부분을 형성 { "typ": "JWT", "alg": "HS256" } Payload 클라이언트 정보나 클레임(Claim) 정보 포함 클레임 : 사용자 정보, 토큰의 만료 기간, 권한 등 포함 Base64로 인코딩되어 토큰의 두 번째 부분을 형..

Computer Science/Web

[Web] OAuth

OAuth (Open Authorization) OAuth는 인터넷 사용자들이 자원을 다른 웹 애플리케이션에서 안전하게 제3자로부터 접근하고 사용할 수 있도록 허용하는 프로토콜 및 프레임워크이다. 주로 웹과 모바일 애플리케이션에서 사용되며, 사용자가 자신의 데이터를 달느 서비스와 공유하거나 다른 서비스의 데이터를 사용할 수 있게 해준다. OAuth 주체 1. Resource Owner 리소스 소유자. 우리의 서비스를 이용하면서, 구글, 페이스북 등의 플랫폼에서 리소스를 소유하고 있는 사용자 2. Client Resource Server의 자원을 이용하고자 하는 서비스 = 우리가 개발하려는 서비스 3. Resource Server 구글, 페이스북, 트위터와 같이 리소스를 가지고 있는 서비스 4. Autho..

Computer Science/Web

[Web] Web Server와 WAS의 차이

정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages) Web Server와 WAS(Web Application Server) WebServer 역할 HTTP 요청 처리 : 웹 서버는 클라이언트로부터 받은 HTTP 요청을 처리하고, 이에 따른 정적 컨텐츠를 반환한다. 동적인 컨텐츠를 제공하기 위해서는 WAS로 클라이언트 요청을 보내고 WAS에서 처리한 결과를 클라이언트에게 전달한다. 종류 Apache, Nginx, IIS WAS (Web Application Server) 역할 클라이언트 요청에 따라 데이터베이스 조회와 비즈니스 로직 처리를 통해 동적인 페이지를 생성하여 클라이언트에게 반환한다. 종류 Tomcat, JBoss, WildFly WebServer와 WAS를 구분하는 이..

Computer Science/Web

[Web] REST API

REST REST(Representational State Transfer)는 웹 애플리케이션을 위한 아키텍처 스타일 중 하나로, 리소스와 HTTP 메서드를 기반으로 데이터를 관리하는 방법론이다. 따라서 이를 잘 지킨 API를 RESTful한 API라고 한다. 구성요소 자원(Resource) REST는 모든 것을 리소스로 간주하며, 각 리소스는 고유한 식별자인 URI(Uniform Resource Idenficier)를 갖는다. 행위(Verb) HTTP 메서드(GET, POST, PUT, DELETE 등)를 의미 표현(Representation of Resource) 행위의 구체적인 내용 원칙 URL는 리소스를 표현 URL는 리소스를 나타내는 고유한 경로여야 한다. 리소스를 직관적으로 이해할 수 있는 명..

Computer Science/Web

[Web] HTTP Request Methods & Status Code

HTTP Request Methods 클라이언트가 웹서버에게 요청하는 목적 및 그 종류를 알리는 수단 종류 1. GET 지정된 자원을 검색하는데 사용 서버의 데이터를 변경하지 않음 (READ) 2. POST 서버에 새로운 자원을 생성하도록 요청하는데 사용 (CREATE) 일반적으로 클라이언트에서 서버로 데이터를 보낼 때 사용 3. PUT 지정된 자원의 전체 내용을 업데이트하는데 사용 (UPDATE) 만약 지정된 자원이 없다면 새로운 자원을 생성 기존 데이터를 갱신할 때 사용 4. DELETE 지정된 자원을 삭제하는데 사용 (DELETE) 보통 클라이언트에서 서버 리소스를 삭제하도록 하진 않아서 비활성화로 구성 5. HEAD GET과 동일한 응답을 요구하지만, 응답 본문(body)을 포함하지 않는다. 주로..

dbssk
'Computer Science/Web' 카테고리의 글 목록