CS지식/네트워크
-
10일차 - 웹 공격 기술 (1)CS지식/네트워크 2021. 5. 14. 20:25
1. 웹 애플리케이션에 대한 공격 패턴 웹 애플이레케이션을 공격하는 패턴은 크게 능동적 공격과 수동적 공격으로 나뉜다. 각각 자세히 알아보자. 1) 능동적 공격 (active attack) 능동적 공격은 공격자가 직접 웹 애플리케이션에 접근하여 공격을 하는 것이다. 대표적인 공격으로는 SQL 인젝션과 OS 커맨트 인젝션 등이 있다. 2) 수동적 공격 (passive attack) 수동적 공격은 함정을 이용해 유저가 공격 코드를 실행시키도록 하는 공격이다. 이 경우에는 공격자가 직접 웹 애플리케이션에 접근할 필요가 없다. 대표적인 수동적 공격으로는 크로스 사이트 스크립팅(XSS), 크로스 리퀘스트 포저리(CSRF) 등이 있다. 수동적 공격을 이용한다면 인트라넷(특정 단체의 소속자만 사용하는 인터넷 환경) ..
-
9일차 - 웹 콘텐츠에서 사용하는 기술CS지식/네트워크 2021. 5. 11. 23:16
오늘은 웹에서 다양한 콘텐츠를 보여주기 위해 사용되는 여러 기술들을 배웠다. 웹 페이지를 표현하기 위한 언어 뿐만 아니라 데이터 송신을 용이하게 하는 XML이라 JSON에 대해서도 알 수 있었다. 1. HTML (HyperText Markup Language) 웹 페이지의 대부분은 HTML로 되어 있기 때문에 HTML에 대해 알아볼 필요가 있다. HTML은 웹 상에서 하이퍼텍스트를 보내기 위해서 개발된 언어이다. 여기서 말하는 하이퍼텍스트란 문서 시스템의 하나로서, 문서 중에 임의의 장소의 정보가 다른 정보에 링크되어 있는 문서이다. 마크업 언어는 문서의 일부에 특별한 문자열(HTML에서는 HTML 태그라고 부른다.)을 붙임으로써 문서를 수식하는 언어이다. 우리가 보고 있는 naver웹 페이지, goog..
-
8일차 - HTTP에 기능을 추가한 프로토콜CS지식/네트워크 2021. 5. 8. 22:22
오늘은 기존의 HTTP의 사양에 따른 병목현상을 예방하기 위한 것에 대해 배웠다. HTTP가 처음 개발되었을 때는 단순히 HTML을 전송하기 위한 목적이여서 오늘날에 와서 새로운 기능들을 대처하기에는 부족한 점이 많은 프로토콜이라는 생각이 들었다. 현재는 HTTP 1.1버전을 대부분 사용하지만 1.1버전의 부족한 점을 보완하기위해 2.0버전을 개발 중이라는 것도 알게 되었다. 1. SPDY SPDY는 HTTP의 병목현상을 해소하고 웹 페이지 로딩 시간을 절반 단축하려는 목표로 개발되고 있다. 병목현상은 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상이다. 기존의 HTTP를 사용하면 어떠한 원인으로 병목현상이 발생하는 것일까? - 1개의 커넥션으로 1개의 리퀘스트만 보낼 수 있다...
-
7일차 - HTTP 인증CS지식/네트워크 2021. 5. 6. 00:57
오늘은 HTTP가 제공하는 표준적인 인증 방법과 SSL 클라이언트 인증, 폼 베이스 인증에 대해 배웠다. 어제 배운 것에서 알 수 있듯이 HTTP는 통신 상대를 확인하지 않기에 약점이 존재한다고 하여 인증의 중요성을 강조했다. 어제는 SSL을 통해서 인증을 구현한다고 하여 HTTP 자체에 인증 방법이 없는 줄 알았는데 오늘 배우면서 제대로 알게 되었다. 1. 인증이란 우리는 누군가와 얘기를 할 때에 서로 알고 있거나 모른다면 통성명을 하여 누군지 알고 시작한다. 하지만 컴퓨터는 클라이언트가 누구인지, 서버가 누구인지 알 수가 없다. 그래서 인터넷을 통한 통신에서는 상대방인지 누구인지 알 수 있도록 정보가 필요하고 정보를 통해 확인된 실체가 정말 맞는지에 대한 확신이 필요하다. HTTP에서는 이러한 기능을..
-
6일차 - 웹을 안전하게 지켜주는 HTTPSCS지식/네트워크 2021. 5. 2. 23:10
오늘은 HTTP의 안전을 지켜주는 HTTPS에 대해서 배웠다. 평소에 주소를 보면 http인 경우도 있고 https인 경우도 있었는데 이것들이 무슨 차이가 있는지는 잘 몰랐다. 오늘 https를 배움으로써 궁금증을 해결할 수 있었다. 1. HTTP의 약점 지금까지 HTTP의 동작원리와 기능에 대해 배웠다. 클라이언트와 서버간에 통신을 할 수 있게 해주는 HTTP의 단점이자 약점은 무엇이 있을까? 1) 암호화 하지 않은 통신이기 때문에 다른 사람(통신에 참여하지 않은 사람)이 볼 수 있다. 암호화되어 있지않은 통신에 약점이 존재하는 이유는 TCP/IP 구조의 통신 내용은 전부 통신 경로 도중에 엿볼 수 있기 때문이다. 통신 경로 상에 있는 네트워크 기기나 케이블, 컴퓨터 등은 모두 자신이 소유하고 있지 않..
-
5일차 - HTTP와 연계하는 웹 서버CS지식/네트워크 2021. 4. 29. 22:34
오늘은 가상호스트에 대해 공부하고 클라이언트와 서버 중간에 중계 역할을 하는 프로그램 3가지에 대해 공부했다. 가상호스트에 대해 간단하게 무엇인지는 알겠지만 설명을 정확히 무엇이라고 하기에는 아직 부족하다.. 조금 더 가상호스트에 대해 공부해봐야겠다. 1. 가상 호스트(Virtual Host) 가상 호스트는 하나의 HTTP 서버에 여러 개의 웹 사이트를 실행할 수 있도록 하는 기술이다. 가상 호스트를 통해 물리적 서버는 1대이지만 가상으로 여러 대가 있느 것처럼 설정이 가능하다. 그러면 가상 호스트는 왜 필요할까? 우리는 웹 사이트를 접속할 때 www.naver.com과 같은 호스트 명이나 도메인 명을 자주 사용한다. 인터넷에서 도메인명은 DNS에 의해 IP 주소로 변환되어지고 리퀘스트가 서버에 도착한 ..
-
4일차 - 결과를 전달하는 HTTP 상태 코드CS지식/네트워크 2021. 4. 26. 23:27
오늘은 클라이언트가 요청한 리퀘스트에 대한 결과를 알려주는 HTTP 상태 코드에 대해 배웠다. 아마 인터넷이 연결되어있지 않은 환경에서 브라우저로 웹 페이지를 접속하려면 에러 코드를 본 경험이 있을 것이다. 그 때 본 에러 코드가 오늘 배운 상태 코드이고 그것의 의미를 알 수 있었다. 1. 상태 코드 상태 코드란 클라이언트가 리퀘스트를 서버 측에 보냈을 때 서버에서 어떻게 처리됐는지에 대한 결과를 알려주는 역할을 하는 것이다. 상태 코드를 통해 리퀘스트를 정상적으로 처리했는지 에러가 발생했는지를 알려줄 수 있다. 상태 코드를 3자리의 숫자와 설명으로 나타낸다. 숫자의 첫 번째 자리는 리스폰스의 클래스를 의미하고 나머지 2자리는 정해진 분류가 없다. 리스폰스의 클래스는 5개가 정의되어 있다. 클래스 설명 ..
-
3일차 - HTTP 메시지CS지식/네트워크 2021. 4. 22. 23:10
오늘은 HTTP 통신에서 정보를 주고 받을 때 사용하는 HTTP 메시지에 대해 간략하게 배우고 통신을 할 때 유용하게 사용하는 기능들에 대해 배웠다. 책을 읽으면서 이 기능이 왜 존재하는지에 대한 예시를 잘 들어줘서 이해하기 편했다. 1. HTTP 메시지 HTTP는 클라이언트에서 리퀘스트를 전송하고 그에 응답하는 리스폰스를 서버 측에서 보낸다고 배웠다. 이렇게 리퀘스트와 리스폰스를 주고 받을 때 교환하는 정보를 담는 것을 HTTP 메시지라고 한다. HTTP 메시지는 여러 행의 데이터로 구성된 텍스트 문자열이고 메시지 헤더와 메시지 바디로 구성된다. 여기서, 메시지 헤더 부분과 메시지 바디 부분의 구분하는 경계선을 나타내는 것은 [CR+LF]이다. (CR: 16진수 0x0d, LF: 16진수 0x0a) 모..