본문 바로가기
728x90

전체 글196

Session Hijacking 이란? 👾 Session Hijacking 이란? HTTP Session Hijacking 이라는 공격 기법은 웹 브라우징시 세션 관리를 위해 사용되는 Session ID를 스니핑이나 무작위 추측 공격(brute-force guessing)을 통해서 도용하는 기법이다. 간단히 말하자면, 공격자가 인증 작업 등이 완료되어 정상통신을 하고있는 다른 사용자의 세션을 가로채서 별도의 인증 작업 없이 가로챈 세션으로 통신을 계속하는 행위이다. 먼저 이러한 공격에 대한 배경지식으로 HTTP 프로토콜의 특성 및 Session ID을 알아보자. 0. HTTP 프로토콜의 특성 HTTP는 기본적으로 비연결유지(stateless) 프로토콜이다. 따라서 웹 사이트 로그인 후 다른 페이지 방문시마다 매번 로그인해야 하는 불편함이 있는.. 2022. 4. 18.
웹 보안🏴‍☠️ Cross-Site Scripting(XSS) 세션 탈취 웹 보안 Cross-Site Scripting(XSS) 세션 탈취 예제 📍 순서 1. get.php 생성. 2. 값 테스트 3. 글쓰기 쓰기 전에 4. 서버 재시작 5. 세션 값 확인 * 80040e10 에러 이유 & 해결방법: 이렇게 하면 에러가 난다. 이유는 얘가 ' 작은 따옴표 인식을 못하기 때문.. 그래서 전부 " 쌍따옴표로 바꿔주면 해결된다. 혹은 그냥 글을 쓰고, 수정하기로 다시 쓸 때 작은 따옴표를 넣어줘도 되더라. 2022. 4. 18.
int와 Integer 차이 (Primitive 자료형과 Wrapper 클래스 관계) int 와 Integer 차이 (Primitive 자료형 - Wrapper 클래스 관계) 1. Wrapper 클래스 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉜다. 기본 타입은 byte, char, short, int, long, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데, 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있다. 이때 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 래퍼 클래스는 java.lang 패키지에 포함되어 있으며, 아래와 같이 기본 타.. 2022. 4. 15.
백준 1476, 날짜계산 (자바/java) 백준 1107 리모컨 (자바/java) 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16.. 2022. 4. 11.
백준 2309, 일곱 난쟁이 (자바/java) 백준 2309, 일곱 난쟁이 (자바/java) 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 .. 2022. 4. 11.
백준 9020, 골드바흐의 추측(자바/java) 백준 9020, 골드바흐의 추측(자바/java) 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 .. 2022. 4. 6.
백준 1085, 직사각형에서 탈출 (자바/java) 백준 1085 직사각형에서 탈출 (자바/java) 문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. * 제한 1 ≤ w, h ≤ 1,000 1 ≤ x ≤ w-1 1 ≤ y ≤ h-1 x, y, w, h는 정수 [풀이] 한수의 위치(x,y)에서 직사각형 오른쪽 위 꼭짓점의 위치인(w,h)이 있을 때 한수가 직사각형에서 탈출할 수 있는 최단거리를 구하는 문제다. 좌표들을 비교해서 가장 짧은 것을 찾으면 된다. if 문으로도 해결할 수 있고 자바 .. 2022. 4. 6.
백준 3053, 택시 기하학 (자바/java) 백준 3053 택시 기하학 (자바/java) 문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다. 출력.. 2022. 4. 6.
[Springboot] 컨트롤러에서 Json 데이터 받을 때 오류 out of START_ARRAY token..Cannot deserialize value of type JsonToken.. Springboot 컨트롤러에서 Json 데이터 받을 때 오류 out of START_ARRAY token..Cannot deserialize value of type JsonToken.. Post 로 아래 데이터를 받으려고 하는데 컨트롤러에서 out of START_ARRAY token 에러가 났다. [ { "product_idx": 1, "amount": 1 }, { "product_idx": 2, "amount": 2 } ] 에러가 났던 이유는 컨트롤에서 받아올때의 타입 문제였다.. public BaseResponse order(@AuthenticationPrincipal UserLoginRes userLoginRes, @RequestBody List postOrderReq) { return new.. 2022. 4. 6.
728x90