전체 글

CS공부

XSS와 CSRF의 차이 (웹 사이트 보안 공격)

인터넷 사용이 증가함에 따라 웹 보안은 나날이 중요해지고 있다. 그 중에서도 XSS와 CSRF는 웹 개발자와 사용자 모두 주의해야 할 중요한 문제이다. 이 둘에 대해서 자세히 알아보고자 한다. XSS 란 공격 목적 XSS는 "Cross-Site Scripting"의 약자이며, 악의적인 스크립트를 웹 페이지에 삽입하여 사용자 브라우저에서 실행시켜 공격하는 것이다. 이로써 공격자는 다른 사용자의 세션 쿠키나 민감한 정보를 탈취 또는 조작할 수 있다. 공격 대상 주로 사용자의 브라우저와 해당 웹 페이지를 공격한다. 공격 방식 악의적인 스크립트가 웹 페이지에 삽입되어 사용자의 브라우저에서 실행된다. XSS 공격자는 사용자의 브라우저에서 실행되는 스크립트를 통해 사용자의 쿠키, 세션 정보 등을 탈취한다. 이를 통..

CS공부

CORS (Cross-Origin Resource Sharing) 란?

CORS란 CORS 웹개발에서 중요한 보안 관련 주제 중 하나로, "Cross-Origin Resource Sharing" (교차 출처 리소스 공유) 의 약어이다. 서로 다른 도메인 간에 데이터 요청과 응답을 허용하는 웹 보안 메커니즘으로 출처가 다른 자원들을 공유한다는 의미이다. 쉽게 말해, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. 웹 브라우저에서 실행되는 스크립트가 다른 출처(도메인)에서 리소스를 요청할 때, 동일 출처 정책 (Same-origin policy)에 따라 요청을 차단하는데, 이를 허용하기 위해 필요한 것이 CORS이다. CORS에 대해 자세히 알기 전에 출처 와 동일 출처 정책 이 무엇인지 먼저 알아보자. 출처란? 여기서 출처가 무엇인지, 어디서부터 ..

CS공부

로드밸런싱 (Load Balancing) 이란

로드밸런싱 (Load Balancing) 이란 로드 밸런싱이란, 로드 + 밸런스 -ing 를 합친 말이다. 로드 : 서버가 받는 부하 (트래픽) 로드밸런싱 (Load Balancing) 은 이런 트래픽들을 잘 밸런싱하여 서버에게 골고루 분산시켜 주는 모듈이다. 로드밸런서 (Load Balancer) 는 클라이언트와 Server pool(서버 그룹) 사이에 위치해, 서버의 부하를 분산시키는 하드웨어 또는 소프트웨어를 말한다. 그렇다면 로드밸런서가 왜 필요할까? 예를 들어서비스를 런칭했다고 치자. 유저에게 오는 쿼리 개수가 1000개 이상 늘어난다고 하면 어떻게든 서버가 잘 유지가 될 수도 있겠지만 앱이 커지고 수천만명, 수억 명의 유저가 몰린다면 한 대의 애플리케이션 서버로 감당 가능하기 힘들다. 이처럼,..

프로그래머스

[JAVA] 프로그래머스 최댓값과 최솟값

문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한사항 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입력예제 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" 풀이 class Solution { public String solution(String s) { String answer = ""; String[] str = s.split(" "); int[]..

CS공부

서블릿(Servlet)이란?

서블릿(Servlet) 이란? 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. - 위키백과 : 자바 서블릿 서블릿이란, 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다. 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 수행하고 웹 브라우저에 HTTP 형식으로 응답(Response) 한다. 예를들어, 사용자가 로그인을 하려 ID, PW를 입력하고 로그인 버튼을 누른다면 서버는 클라이언트의 ID,PW를 확인한 후 다음 페이지를 띄워주어야하는데 이러한 역할을 수행하는 것이 바로 서블릿이다. ..

CS공부

WS(Web Server)와 WAS(Web Application Server) 차이

WS (Web Server) 와 WAS (Web Application Server) 는 웹 개발에서 서로 다른 역할을 수행하는 두 가지 서버 유형이다. 각각의 특징을 알아보자. WS란? WS (Web Server) 란, 웹 브라우저(클라이언트)로 부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램이다. 클라이언트가 요청을 하면 웹서버는 요청을 해석하고 해당 파일을 찾아 응답한다. 정적 컨텐츠란, 요청 인자값에 상관없이 달라지지 않는 컨텐츠. 즉, 어느 사용자에게든 동일한 컨텐츠를 보여준다. (HTML, CSS, Image 등) APACHE, Microsoft IIS, Nginx 등이 있다. WAS란? WAS의 등장 배경 1990년대 후반, 인터넷이 보급되며 웹 브라우저를 사용..

프로그래머스

[JAVA] 프로그래머스 최소직사각형

문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함번호 가로길이 세로길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지..

CS공부

JWT(JSON Web Token) 이란?

세션에서 요청을 진행할 때마다 세션 저장소에서 세션ID를 조회하는 작업을 통해 DB접근을 해야 하는 번거로움과 저장하는 세션ID가 많아질수록 서버에 과부하가 걸린다는 단점을 보완한 것이 JWT(JSON Web Token) 이다. 그럼 JWT에 대해서 알아보고자 한다. ✒️쿠키와 세션에 대해 자세히 알아보기 JWT란?선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준 인증 방식 인증에 필요한 정보들을 토큰에 담아 암호화시켜 사용하는 서명된 토큰이다. 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로 Json객체를 이용한다. 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이며, 웹 상에서 정보를 JSON 형태로 주고받기 위해 표준 규약에 따라 생성..

DEV장화
캠코더 아니고 그냥 코더