반응형
1과목. 소프트웨어 구축
📒 13. 서버 프로그램 구현
계획 - 요구사항 분석 - 소프트웨어 - 구현 - 테스트 - 유지보수
1. MVC 패턴
(1) Model
- 애플리케이션의 정보 및 데이터
- Controller에게 받은 데이터를 조작하는 역할
(2) View
- 사용자가 보는 화면으로 데이터를 시각적으로 보여주는 역할
(3) Controller
- Model과 View 사이의 데이터 흐름을 제어함
- 비즈니스 로직 처리
2. DBMS 접속기술
(1) DBMS 접속기술의 개념
- 프로그램에서 데이터베이스에 접근하여 DML을 사용할 수 있게 하는 기술
(2) DBMS 접속기술 종류
- a) 소켓통신
- 응용 프로그램과 DBMS 간에 주고받는 통신 방법 - b) Vender API
- DBMS 제공 업체마다 API 사용법이 달라 호환성 문제 발생할 수 있음 - c) JDBC (Java DataBase Connectivity)
- Java 언어를 사용하여 DB에 접속하고 SQL 문을 수행할 때 사용되는 표준 API - d) ODBC (Open DataBase Connectivity)
- 개발 언어에 관계없이 사용할 수 있는 표준 규격
3. ORM(Object-Relational Mapping) 프레임워크
(1) ORM의 개념
- 객체지향 프로그래밍과 관계형 데이터베이스 간의 호환성 격차를 해결하기 위한 프로그래밍 기법
(2) 매핑 기술 비교
- a) SQL Mapper
- SQL을 명시하여 단순히 필드를 매핑시키는 것이 목적
- SQL 문장으로 직접 데이터베이스 데이터를 다룸
- 종류 : iBatis, Mybatis, jdbc Templates 등 - b) OR Mapping(ORM)
- 객체를 통해 간접적으로 데이터베이스를 다룸
- 직관적인 코드로 데이터를 조작할 수 있음
- 쿼리를 작성하지 않음
- 종류 : JPA(Java Persistent API), Hibernate
4. OWASP(The Open Web Application Security Project)
- 오픈소스 웹 애플리케이션 보안 프로젝트
- OWASP Top10 : 빈번하고 영향력 있는 웹 애플리케이션 취약점 상위 10가지 발표
- KISA에서 시큐어 가이드를 만들었는데 이 가이드를 따라 만드는 것이 시큐어 코딩
5. 시큐어 코딩(Secure Coding)
(1) 시큐어 코딩의 개념
- 해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법
(2) 시큐어 코딩 가이드 항목
- 입력 데이터 검증 및 표현, 보안기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용
(3) 보안 약점 종류
- a) SQL Injection
- SQL 쿼리 삽입을 통한 데이터베이스 정보 열람 및 조작 - b) XSS(크로스 사이트 스크립트)
- 사용자 측에서 실행되는 악의적 스크립트 삽입 - c) 자원 삽입
- 외부 입력값이 시스템 자원 접근 경로 또는 자원 제어에 사용 - d) 위험한 형식 파일 업로드
- 서버 측에서 실행 가능한 스크립트 파일 업로드 - e) 명령 삽입
- 운영체제 명령어 삽입 - f) 메모리 버퍼 오버프로
- 입력값으로 인해 버퍼가 넘쳐 다른 메모리 공간 침범 - g) 적절한 인증 없이 중요 기능 허용
- 중요 정보(계좌, 개인정보 등)에 대한 접근에 적절한 인증 과정이 없을 때 발생 - h) 부적절한 인가
- 중요 자원에 대한 외부 입력값을 포함한 문자열로 접근 가능할 때 발생 - i) 취약한 암호화 알고리즘 사용
- 안전하지 않은 알고리즘(예: DES, MD5) 사용으로 인한 보안 약점 - j) 하드코딩된 패스워드
- 소스 코드 유출 시 노출될 수 있음 - k) 패스워드 평문 저장
- 계정 정보 탈취 시 패스워드가 쉽게 노출될 수 있음 - l) 취약한 패스워드 허용
- 비밀번호 조합 규칙이 미흡하거나 길이가 충분하지 않을 때 발생
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
반응형
댓글