일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 백준
- graph
- Algorithm
- DP
- 힙
- 동적계획법
- Code Refactoring
- DFS
- binary search
- 문자열
- 그래프
- Greedy
- programmers
- Queue
- sort
- Brute Force
- django
- string
- 큐
- Dynamic Programming
- heap
- 알고리즘
- 코딩테스트
- 정렬
- DVWA
- 완전탐색
- 탐욕법
- BFS
- 프로그래머스
- 카카오 기출
- Today
- Total
목록전체 글 (77)
생각과 고민이 담긴 코드

Platform 이란? MindSphere가 무엇인지 이해하기 위해선 먼저 플랫폼에 대한 개념이 먼저 필요합니다. 플랫폼에 대한 개념을 클라우드 서비스 모델을 통하여 알아보겠습니다. 위 그림과 같이 클라우드 서비스 모델에는 총 3가지가 있습니다. IaaS, PaaS, SaaS들이 바로 그것입니다. 먼저 SaaS는 Software as a Service의 약자로 제품 하나가 하나의 완전한 소프트웨어 형태로 제공되는 것을 말합니다. Network, Server 단 부터 Application까지 모두 Provider(판매 사업자)가 관리하게 됩니다. IaaS는 Infrastructure as a Service의 약자로 Network와 서버 자원 등만 제공하는 것을 뜻합니다. AWS와 같은 클라우드 서비스가 I..

문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solutio..

오늘은 저번 포스팅에 이어서 DVWA 사이트에서의 XSS 공격 실습과 그에 해당하는 대응방법에 관해 포스팅해보겠습니다. XSS 공격이란? 먼저 XSS에 대한 개념에 대하여 알아보겠습니다. XSS는 대부분의 웹사이트의 내장된 자바스크립트의 위 스크립트의 내용을 살펴보면 공격자의 웹서버 주소로 사용자를 이동시키는 동시에 쿠키 정보를 전달시키고 있음을 알 수 있습니다. 즉, 이러한 스크립트가 포함된 요청이 '10.0.2.4'로 갔다가 응답이 오는 동시에 웹브라우저에서 스크립트를 실행시켜 사용자를 '10.0.2.5'로 이동시킵니다. 또한 동시에 DVWA 웹사이트에서 받은 세션 정보를 포함하는 쿠키 정보를 넘겨주게 됩니다. 그렇게 진행하게 되면 사용자는 위와 같이 아무것도 없는 페이지로 이동되지만 공격자 측에서는..

이번에는 Command Injection에 대하여 알아보고 간단히 실습을 진행해보겠습니다. Command Injection이란? Command Injection은 보기와 같이 사용자로부터 받은 입력을 내부적으로 시스템 명령어의 인자로서 사용하는 서비스에서 악의적으로 ";" 등의 키워드를 통해 다른 시스템 명령어를 덧붙여 실행시키는 공격을 말합니다. 위 예시와 같이 사용자로 부터 ip주소를 입력을 받아서 내부적으로 ping 명령어를 실행시키는 서비스가 있습니다. 여기에 ";" 키워드를 붙혀서 추가적인 시스템 명령어인 ls를 붙혀 보내면 놀랍게도 ls 명령어의 실행결과도 반환되는 것을 볼 수 있습니다. DVWA Security 단계 별 대응 1. low 단계 : 대응 없음. 2. medium 단계 : // ..

실습을 진행하기 앞서서 실습환경은 Oracle VM VirtualBox에 Kali Linux를 설치한 후 Burp Suite를 이용하여 진행하였습니다. 또한 DVWA는 Metasploitable2 위에서 구동시키도록 환경을 실습환경 구축했습니다. Kali Linux는 데비안 기반의 모의 침투 테스트용 운영체제이고 Burp Suite는 웹 프록시로서 클라이언트 요청정보, 서버의 응답 정보 등을 상세히 확인할 수 있는 툴입니다. Metasploitable2는 모의 침투 테스트를 위한 취약한 웹서버이며 DVWA등과 같은 여러 모의 침투용 웹 어플리케이션들을 제공합니다. 이어지는 포스팅에서는 실습환경에 대한 설치 과정을 따로 다루진 않고 간단한 실습과 함께 웹 보안에 대한 개념을 확실히 잡으면서 공부하는 것을 ..

CORS 정책이란? 계속해서 REST api 설계를 진행하면서 마주친 CORS 정책에 관련하여 알아보고 그에 대한 해결책에 대해서도 알아보겠다. 먼저 간단히 말하자면 CORS 정책은 웹브라우저 구현 스펙에 포함되는 보안 정책이다. 또한 CORS는 Cross-Origin Resource Sharing에 줄임말로 쉽게 의역하면 서로 다른 출처에 대한 리소스 공유에 대한 규칙이라고 볼 수 있다. 그렇다면 서로 다른 출처라는 것은 대체 어떤 기준을 말하는 것일까? 위 그림을 보면서 한번 이해해보겠다. 기준은 바로 URL의 구성요소 중 Scheme, Host, Port 이렇게 딱 3가지이다. 위 그림에 나온 url로 예를 들어 설명하자면 "http://" 이 부분이 scheme에 해당하고 "domainA" 이 부..

저번 포스팅에서의 문제 인식에 이어서 Rest api 설계를 진행 중이다. 처음엔 django의 template 기능을 활용하여 풀스택으로 개발된 프로젝트를 DB에 접근하여 데이터를 처리하는 부분을 따로 분리시켜 REST api 형태로 개발하고자 한다. 간편하고 빠른 개발을 지향하는 Django에서는 역시나 Rest api를 쉽게 개발할 수 있도록 Django Rest Framework 라이브러리를 제공한다. 따라서 이 DRF를 활용하여 설계를 진행하였는데 문제는 처음부터 Rest api를 목적으로 프로젝트를 진행한 것이 아니기 때문에 이미 많은 코드가 구현되어 있었다. 그러므로 구조적으로 어느 부분을 어느정도만큼 재구성할지 boundary를 설정해야 했다. DRF에서는 정말 추상화 정도에 따라서 다양한..

문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수..