서버 프로그램 구현
2022. 6. 7. 15:44ㆍ정처기(필기)/프로그래밍언어활용
더보기
(1) 보안 취약성 식별
1. 보안 취약성의 개념
- 보안 취약점은 정보시스템에 불법적인 사용자의 접근, 정상적인 서비스를 방해, 정보시스템에서 관리하는 중요 데이터의 유출, 변조, 삭제에 대한 위협
- 응용 프로그램의 보안 취약점, 위협 요소, 허점을 탐지하는데 도움을 준다.
2. 침투 테스트 개념
- 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 시스템의 취약점을 찾기 위한 방법
3. 취약성에 따른 공격기법
- 서비스 거부(DoS) - 무의미한 서비스 요청 등의 반복을 통해 특정 시스템의 가용자원을 소모시켜 서비스 가용성을 저하시키는 공격기법
- 코드 실행 : 응용 프로그램이 적절한 입력 유효성 검사 없이 쉘명령을 실행하는 취약점을 이용하여 공격자가 원하는 임의 코드가 실행되도록 하는 공격기법
- 버퍼 오버플로우 : 정해진 메모리의 범위를 넘치게 해서 원래의 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법
- 정보 수집 : 공격 전 서버 또는 시스템의 취약점, 네트워크 경로, 방화벽 설치 유무를 알아내고 정보를 수집하는 공격기법
- 권한 상승 : 악성프로그램 설치 후 데이터 조회, 변경, 삭제 등을 통한 권한 상승으로 루트권한을 획득하는 공격기법
- SQL 삽입 : 데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력 폼 및 URL 입력란에 SQL문을 삽입하여 DB로부터 정보를 열람할 수 있는 공격기법
- 크로스 사이트 스크립팅(XSS) : 공격자가 게시판에 악성 스크립트를 삽입
- 사이트 간 요청 위조 공격(CSRF) : 사용자가 의지와 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청
- 디렉토리 접근 : HTTP 기반의 공격으로 액세스가 제한된 디렉토리에 접근하여, 서버의 루트 디렉토리에서 외부 명령을 실행하여 파일, 웹 소스 등을 강제로 내려받을 수 있는 공격기법
- FTP 바운스 공격 : FTP 서버가 데이터를 전송할 때 목적지가 어디인지 검사하지 않는 설계상의 문제점을 이용
더보기
(2) API
1. API의 개념
- 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 오픈 API는 누구나 쉽게 접근하여 정보를 공유하기 위해 만들어진 것(기상청 API)
- 비공개 API는 권한이 있는 일부 사용자들에게만 정보를 제공하기 위해 만들어진 것(사내 API)
2. API의 종류
- 윈도즈 API : 마이크로소프트 운영체제가 사용하는 API
- 웹 API : 웹 애플리케이션에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 API(XML, JSON, SOAP, REST)
- 오픈 API : API 중에서 플랫폼의 기능과 콘텐츠를 외부에서 웹 프로토콜로 호출해 사용할 수 있개 개방한 API
- 자바 API : 자바를 사용하여 쉽게 구현할 수 있도록 한 클래스 라이브러리의 집합
더보기
(3) 배치 프로그램
1. 배치 프로그램의 개념
- 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
2. 배치 프로그램의 필수 요소
- 자동화 : 심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 함
- 안정성 : 어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 함
- 대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 함
- 견고성 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함
- 성능 : 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 함
3. 배치 프로그램의 유형
유형 | 설명 |
이벤트 배치 | 사전에 정의해 둔 조건 충족 시 자동으로 실행 |
온디맨드 배치 | 사용자의 명시적 요구가 있을 때마다 실행 |
정기 배치 | 정해진 시점에 정기적으로 실행 |
4. 배치 프로그램의 종류
- 스프링 배치 : 스프링 프레임워크의 AOP, DI, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러
- 쿼츠 스케줄러 : 스프링 프레임워크에 플러그인 되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러
'정처기(필기) > 프로그래밍언어활용' 카테고리의 다른 글
프로세스 스케줄링 (0) | 2022.06.10 |
---|---|
운영체제, 메모리 관리 (0) | 2022.06.09 |
언어특성 활용, 라이브러리 (0) | 2022.06.08 |
기본문법 (0) | 2022.06.08 |
서버프로그램 구현 - 개발환경 구축, 공통 모듈 구현 (0) | 2022.06.07 |