분류 전체보기
-
[보안] 설계/실행의 실수에 기인한 오작동/보안 문제를 막기 위한 대책우아한 테크코스/테크코스 2020. 2. 22. 12:10
뒤로 가기 버튼 오작동 웹 브라우저에는 한 번 표시했던 페이지를 저장해놓는 캐시(Cache) 기능이 있음, 뒤로 가기 버튼을 눌러 바로 전 페이지를 표시할 때는 해당 캐시 기능을 이용하여 웹 서버에 다시 요청을 하지 않아 작동을 빠르게 할 수 있음 단, 위의 경우 정적인 페이지에서는 문제가 되지 않지만, 세션을 이용해 상태를 관리하는 웹 애플리케이션에서는 문제가 될 수 있음(예 - 주문 후 뒤로가기 + 앞으로가기 = 재주문) 뒤로 가기의 경우 웹 애플리케이션 측에서 감지를 할 수 없으므로(웹 서버에 다시 요청을 하지 않기 떄문에), 다양한 오작동의 원인이 됨 대책 1 - 브라우저 캐시 무효화 일단, 위와 같은 경우엔 브라우저가 HTML을 캐시하지 않게 막는 것이 중요 HTTP 응답의 헤더에 아래와 같은 ..
-
[보안] 해시함수와 메시지 다이제스트우아한 테크코스/테크코스 2020. 2. 22. 11:49
해시 함수(Hash Function) 임의의 길이의 입력에 대해 그 입력을 대표하는 메시지 다이제스트(Message Digest)라고 하는 고정 길이의 값을 출력하는 함수 SHA(Secure Hash Algorithm; 해시 암호 알고리즘) 해시 함수에는 다양한 알고리즘이 있음 충돌 위험성이 적은 순으로 대표적인 알고리즘을 정렬하자면 "SHA-256 > SHA-1 > MD5", 따라서 SHA-256 사용이 권장 무한이라고 할 수 있는 입력값을 유한한 출력값(하지만 범위는 넓음)으로 변환하기 떄문에 원리적으로 결과가 충돌할 가능성이 0은 아님, 하지만 한 없이 낮도록 고안된 것 특징 1. 입력 정보가 조금이라도 바뀌면 결과가 크게 달라짐 123456789 > SHA-1 > f7c3bc1d808e05732a..
-
[보안] SSL을 이용한 암호화우아한 테크코스/테크코스 2020. 2. 22. 11:31
SSL이란? TCP/IP상의 통신을 암호화해 제삼자가 도청해도 내용을 알 수 없게 하는 기술 공개키 암호를 이용해 TCP/IP의 패킷을 암호화함 - 엄밀히 말하면 공개키 암호를 이용하는 암호화나 복호화는 시간이 오래 걸리므로, 실제 통신에선 기존의 공통키 암호를 사용하고 그 키의 송신에만 공개키 암호를 사용함 SSL 통신 기능은 웹 서버나 웹 애플리케이션 서버에서 설정하면 자동으로 실행되므로 특별히 의식할 필요는 없음, 대규모 시스템의 경우 SSL 가속기라는 전용 하드웨어를 도입해 암호화 작업을 빠르게 처리하기도 함 HTTP over SSL(https) HTTP를 이용한 통신을 SSL로 암호화한 것 URI의 스킴 : https 스킴(Scheme) : 리소스를 취득하기 위한 방법 HTTP vs HTTPS ..
-
[보안] 웹 애플리케이션에 대한 대표적인 공격 수법 / 대책우아한 테크코스/테크코스 2020. 2. 21. 22:57
SQL 인젝션(SQL Injection) 웹 폼 등의 입력 인터페이스를 이용해 DB에서 발행되는 SQL을 개발자가 의도하지 않은 형태로 변경해 정보를 부정 취득하거나 수정하는 방법 이 공격 수법을 이용하면 부정 로그인뿐 아니라 DB에 대해 임의의 SQL을 싫애해 악의적인 사용자 계정을 만들거나 원래 취득할 수 없는 정보를 화면에 표시하게 할 수 있음(그러자면 DB 테이블 구성을 파악해야 하지만, 공격자는 화면에 표시되는 SQL의 실행 에러를 실마리로 내부 구조를 추측할 수도 있음) 제삼자의 부정 로그인이나 열람 권한이 없는 정보에 대한 접근, DB의 부정 수정 또는 삭제같은 공격을 허용하며, 그 결과 개인정보의 유출/업무 정지/혼란 같은 문제로 발전 무서운 점은 인터넷을 경유해 전 세계 어디에서도 공격할..
-
[보안] 정보 시스템에서 지켜야할 정보 보안우아한 테크코스/테크코스 2020. 2. 21. 17:59
정보 시스템(웹 애플리케이션 포함)에서 지켜야 할 정보 보안 3가지 1. 제삼자에 대한 정보 유출 방지(기밀성) 2. 제삼자의 악의적인 정보 수정 방지(완전성) 3. 적절한 권한을 가진 사람이 적절한 정보를 이용할 수 있게 할 것(가용성) 기밀성 - 제삼자에 대한 정보 유출 방지 가장 문제가 되기 쉬운 보안 위험 예) 쇼핑몰 사이트가 관리하던 고객 정보가 제삼자에게 유출되어 악용 / 시스템의 로그인 정보등이 유출되어 악의적인 정보 수정이나 서버 공격을 당함 유출된 정보의 소유자인 고객의 피해는 물론이며, 그 시스템을 운영하는 기업은 신뢰를 잃고, 최악의 경우 회사 경영에 지대한 영향을 미치는 문제로 발전할 수 있음 완전성 - 제삼자의 악의적인 정보 수정 방지 본래의 사용자나 시스템을 운영하는 기업에 불이..
-
[아키텍처] 아키텍처란?우아한 테크코스/테크코스 2020. 2. 21. 17:37
아키텍처(architecture) 애플리케이션의 전체 구조를 건축 양식에 견주어 아키텍처라고 부름 어디까지나 설계의 개념이므로 아키텍처에 따라 애플리케이션을 만들면 세세한 부분은 달라짐 아키텍처 패턴 소프트웨어 세계의 아키텍처도 한 가지가 아니고, 다양한 아키텍처를 조합해 사용할 때도 있음 자주 사용되는 아키텍처에는 이름이 붙어있음 = 아키텍처 패턴(architecture pattern) MVC 패턴, 레이어 패턴 등이 아키텍처 패턴 건축 vs 소프트웨어 아키텍처는 건축양식이라는 의미 초기 - 건축 : 설계도를 그리고 모형 등을 만들어 주거 편의성과 강도 등 다양한 사항을 검토한 결과 문제 없음을 확인한 뒤에야 건축업자가 실제로 건축 공사를 시작 - 소프트웨어 : 개발 초기에 전체적인 구조를 철저히 검토..
-
[아키텍처 패턴] 레이어 패턴(Layer Pattern)우아한 테크코스/테크코스 2020. 2. 21. 16:29
아키텍처 패턴 자주 사용되는 아키텍처에 이름을 붙여 놓은 것 레이어 패턴 사용처 웹 애플리케이션처럼 다양한 기술을 조합해 만드는 복잡한 시스템에서는 MVC 모델과 함께 레이어(Layer)라고 하는 아키텍처 패턴을 이용함 나중에 읽어볼 것, 패턴 지향 소프트웨어 아키텍처 : 패턴 시스템 1권 의미 레이어(Layer) = 계층 레이어 패턴 : 시스템을 계층화하고 하위 레이어가 제공하는 기능을 상위 레이어가 이용함으로써 각 레이어의 구조를 단순화한다는 발상 핵심 : 각 레이어는 해당 레이어가 의존하는 직접적인 하위 레이어만 알면 됨 구조 레이어 1 (상위 레이어) V 레이어 2 V 레이어 3 V V 레이어 n (하위 레이어) 레이어 2는 하위 레이어인 레이어 3에 의존 레이어 2의 경우 의식하는 것은 레이어2..
-
[아키텍처] 프레임워크란?우아한 테크코스/테크코스 2020. 2. 20. 13:49
프레임워크(framework) 쉬운 설명 재사용할 수 있는 부분을 늘려 애플리케이션 개발을 용이하게 하는 토대로 만들어진 것 애플리케이션의 기반이 되는 것으로, 프레임워크를 토대로 필요한 부분을 만들어나가면 원하는 애플리케이션을 단기간에 개발할 수 있음 아키텍처와의 관계 공통적인 아키텍처 부분을 반(半:절반정도) 완성품 소프트웨어로 구현해 차이가 있는 부분만 만들면 되게 한 것 아키텍처를 구현하는 부분을 공통화한 부분 장점 프레임워크를 사용하고 다른 부분은 따로 개발할 수 있게 하면 효율적으로 애플리케이션을 개발할 수 있음 모든 것을 처음부터 개발하지 않아도 되기 때문에 품질도 높아짐 프레임워크 도입의 장점 설계 / 개발 공수의 절감 프레임워크 이용시 가장 큰 장점으로는 우수한 설계를 재사용할 수 있다는..