전체 글

    Spring Security - CSRF (Cross Site Request Forgery)

    - CSRF (Cross Site Request Forgery) : 직역을 하면 사이트간 요청 위조 라는 의미로, 유저가 자신의 의지와는 무관하게 공격자가 의도한 행동을 해서 특정한 웹페이지 보안을 취약하게 만들거나, 수정, 삭제, 등록 등의 작업을 하게 만들어 공격하는 방법을 말한다. 예를들면, 2008년 옥션에서 발생한 해킹 사건이 있었는데, 그 해킹 수법도 CSRF 를 이용했다고 한다. 옥션 관리자 중 한명이 관리자 권한으로 사내에서 작업을 하던 중 메일을 조회했고, 관리자 권한으로 사내에서 작업하고 있었기 때문에 유효한 쿠키값을 갖고 있는 상태에서 메일을 조회했던것이다. 그리고 이메일에 해커가 숨겨놓은 코드가 실행되서 관리자의 id 와 pw 를 탈취하는 그런 경우가 있었다. - 방어 방법 1. R..

    BOJ 1199 - 오일러 회로

    www.acmicpc.net/problem/1199 1199번: 오일러 회로 첫 줄에는 정점의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 그리고 다음 N개의 줄에 대해 인접행렬의 정보가 주어진다. i+1번째 줄에는 i번 정점에 대한 인접행렬이 주어진다. 두 정점 사이에 간선이 여러 www.acmicpc.net 오일러 회로라는 것은, 그래프 상에 존재하는 모든 간선들을 오로지 단 한번만 방문해서 출발지로 되돌아오는 경로를 오일러 회로 또는 오일러 경로라고 부른다 시작점과 도착점이 같으면 오일러 회로, 시작점과 도착점이 다르면 오일러 경로라고 부른다. - 무향 그래프 일때 1) 오일러 경로가 존재할 조건은, 시작점과 도착점이 달라야 하고, 차수가 홀수인 정점이 2개 있어야한다. (차수가 홀수인 두 정점이..

    Spring Security - Custom Login Form

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이전 포스팅에서는 Spring Security 를 설정하는 방법에 대해서 알아보고 아래와 같이 기본으로 제공하는 로그인 화면까지 봤었다. 기본 화면도 그렇게 나쁘진 않은것 같으나, 보통은 웹 사이트별로 자체적인 로그인 화면을 갖고 있는 경우가 많다 그래서 커스텀한 로그인 페이지를 어떻게 만드는지 그리고 로그아웃은 어떻게 하는지 알아본다. - Modify Spring Security Configuration : 이전 포스팅에서는 Spring Security 설정 파일인 DemoSecurityConfig.java 에 configure(Authen..

    Spring Security - Configuration

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이전 포스팅에서 간단하게 Spring Security 가 무엇인지 알아봤으니, 이번에는 Spring Security 를 프로젝트에 설정하는 방법에 대해서 알아본다. 이전 포스팅들에서 다뤘던 다른 스프링 프로젝트들과 마찬가지로, Spring Security 도 xml 파일로 설정하는 방법 혹은 xml 파일없이 어노테이션을 이용한 순수 자바 파일로만 설정하는 방법 2가지가 있다. 여기서는 어노테이션을 이용한 순수 자바 파일로 설정하는 방법만을 다루겠다. xml 파일로 설정하는 방법은 아래 사이트 참조 - xml 로 spring security 설..

    BOJ 2513 - 통학버스

    www.acmicpc.net/problem/2513 2513번: 통학버스 첫째 줄에는 세 개의 양의 정수 N, K, S가 빈칸을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 아파트 단지의 수이며 2 K >> S; for(int i = 0; i > pos >> num; apartment.push_back({pos, num}); } apartment.push_back({S, 0}); sort(apartment.begin(), apartment.end()); int idx = -1; // 학교의 좌표 for (int i = 0; i idx; --j) { num += apartment[j].second; if (num > K) { apartment[j].second = num - K; j++; break..

    Spring Security - Overview

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Spring Security Spring Security 는 Spring Framework 기반의 자바 어플리케이션 개발시에 사용되는 보안관련 프로젝트로, 유저에 대한 인증, 권한 관리, 암호화 등의 기능을 사용할때 주로 사용된다. 웹 사이트에 기본적으로 탑재되어 있는 로그인, 회원가입 등의 기능을 개발할때 사용된다. - 작업 흐름 Spring Security 를 통해서 작업을 할때 이뤄지는 전체적인 흐름을 간략하게 그림으로 표현하면 아래와 같다. 웹 브라우저로부터 어떤 요청이 들어오면, 해당 요청이 만약 암호화된 웹 리소스에 대한 접근 ..

    BOJ 1577 - 도로의 갯수

    www.acmicpc.net/problem/1577 1577번: 도로의 개수 첫째 줄에 도로의 가로 크기 N과 세로 크기 M이 주어진다. N과 M은 100보다 작거나 같은 자연수이고, 둘째 줄에는 공사중인 도로의 개수 K가 주어진다. K는 0보다 크거나 같고, 100보다 작거나 같은 www.acmicpc.net (0, 0) 에서 목적지인 (M, N) 으로 최단경로로 이동할때 가능한 경우의 수를 전부 구하는 문제로, 일단 (M, N) 으로 가는 것은 가는 방향의 수가 딱 2개 밖에 없다 오른쪽으로 가거나 밑으로 가거나 그래서 dp[i][j] = dp[i][j - 1] + dp[i - 1][j] 라고 볼 수 있다. 문제는 공사 중인 도로는 지나갈 수 없기 때문에, 지나갈 수 없는 구간에 대한 표현은 어떻게 ..

    BOJ 2109 - 순회강연

    www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 이 문제는 이전에 풀었던, 컵라면 (백준 1781) 문제와 보석도둑 (백준 1202) 문제 하고 비슷한 양상을 보인다. 문제에서 제시한 D 값을 일종의 데드라인으로 볼 수 있고, 하루 하루 날짜가 경과하면서, 데드라인 날짜를 넘어가지 않는 경우라면, 최대힙에 넣어서 최댓값 P 를 찾아낼 수 있도록 탐색해준다. 컵라면 (백준 1781) 문제를 풀때 처럼 데드라인을 기준으로 최대..