우아한 테크코스
-
[VIM] Intellij에서 vim쓰기우아한 테크코스/테크코스 2020. 2. 22. 20:56
VIM 한국어 튜토리얼 보기 지난 번에 '호돌'이 알려줬다! Good! 빔 튜토리얼이 있는지는 아예 몰랐고, 한국어로 지원하는 지도 몰랐는데, 생각보다 정말 잘 되어있었다. vimtutor ko Intellij에서 vim쓰기 오늘 '로운'이 알려줬다! Good!! 인텔리제이에서 IdeaVim 플러그인을 설치하기만 하면 된다 :) VIM 한국어 튜토리얼 (필요한 부분) 한국어 튜토리얼에 나와있는 부분 봐야되는 것 복사해 둠! 직접 쳐보는게 좋지만 가끔 헷깔리는걸 그냥 블로그에서 보려는 나태의 결과... :
-
[보안] 폼인증 vs Basic 인증 vs 다이제스트 인증우아한 테크코스/테크코스 2020. 2. 22. 19:01
폼 인증(FORM Autrhentication) HTTP의 폼으로 인증 페이지를 만든 것 폼 인증 단점 프로그램을 만들어야 함 폼 인증 장점 사용자에게 역할을 설정하고 역할에 따라 접속할 수 있는 화면을 제한하는 식의 기능 등을 제공할 수 있음 세션과의 연동이 가능하므로 로그아웃 등의 기능을 구현할 수 있음 Basic 인증(Basic Authentication) 브라우저가 표시하는 대화창 브라우저에 따라 디자인은 다르지만 기능은 같음 HTTP 규격의 일부로 규정되어 있는 가장 단순한 인증 시스템 Base64를 이용해 HTTP 헤더에 넣을 수 있는 형태로 사용자 이름과 패스워드를 변환 (HTTP 헤더에 사용할 수 있는 문자는 한정되어 있기 때문) Base64 : 임의의 정보를 알파벳이나 숫자 등 64가지 ..
-
[보안] 설계/실행의 실수에 기인한 오작동/보안 문제를 막기 위한 대책우아한 테크코스/테크코스 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 소프트웨어 아키텍처는 건축양식이라는 의미 초기 - 건축 : 설계도를 그리고 모형 등을 만들어 주거 편의성과 강도 등 다양한 사항을 검토한 결과 문제 없음을 확인한 뒤에야 건축업자가 실제로 건축 공사를 시작 - 소프트웨어 : 개발 초기에 전체적인 구조를 철저히 검토..