본문 바로가기

분류 전체보기

(49)
[Network] 브라우저에 www.naver.com을 입력하면 어떻게 될까? 브라우저에 www.naver.com 을 입력하면 어떻게 될까? 이것만큼 네트워크에 대한 본인의 지식을 설명하는 질문은 없을 것 같습니다. 제가 지향하는 정답은 "대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고, 브라우저렌더링 과정을 거쳐 네이버라는 화면이 나타나게됩니다. 또한 이러한 과정은 비캡슐화, 캡슐화과정을 거쳐 이뤄지게 됩니다." 입니다. 대기열 브라우저는 주소창 입력에 대한 요청을 대기열에 넣습니다. 캐싱 캐싱은 요청된 값의 응답을 저장하고 그 값을 다시 요청하면 가지고 있던 값을 제공하는 기술입니다. 이는 공유 프록시캐시와 브라우저 캐시로 나누어집니다. 공유 프록시 캐시 요청한 서버에서 프록시 서버가 캐싱하는 것을 말합니다. 예를 들자면 https://mirr..
[Network] 네트워크 토폴로지 네트워크 토폴로지 네트워크를 설계할 때 노드와 링크가 어떻게 배치되어 있는지에 대한 방식입니다. 트리 토폴로지 트리 형태로 배치한 네트워크 구성입니다. 노드의 추가, 삭제가 쉽지만 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다는 단점이 있습니다. 버스 토폴로지 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말합니다. 주로 근거리 통신망(LAN)에서 사용합니다. 설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉽습니다. 하지만 스푸핑이 가능한 문제점이 있습니다. 스푸핑이란? 스푸핑은 LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여 특정 노드에 해당 패킷이 오도록 처..
[Network] Proxy, CDN, AWS RDS Proxy proxy는 대리라는 의미을 가진 단어로 웹서버에서 무언가의 중개자역할을 합니다. 주로 클라이언트와 서버사이에서 통신을 대리로 수행합니다. Forward Proxy 클라이언트와 인터넷 사이에 위치해 클라이언트대신 서버에 요청을 보내줍니다. 이 구조는 로컬네트워크와 인터넷 사이에 오가는 트래픽을 제어할 수 있습니다. 그렇게된다면 특정 지역내의 발생하는 모든 요청을 관리하는 프록시서버가 있다 가정했을 때, 학교내에서의 부적절한 콘텐츠나 군대내에서 군사기밀들을 배포하는 것을 막아낼 수 있습니다. Reverse Proxy 서버와 인터넷 사이에 위치해서 서버의 응답을 대신 클라이언트에게 전달해줍니다. 이 구조는 캐싱기능을 프록시서버에 두어 더욱 빠르게 캐싱에대한 기능을 수행할 수 있습니다. 또한 외부에..
[DataBase] Sql Injection SQL Injection악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL문을 주입하고 실행되게하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위입니다. 공격종류 Error based SQL Injection 논리적 에러를 이용한 SQL InjectionSELECT * FROM User WHERE id = 'INPUT1' AND password = 'INPUT2'INPUT1 => ' OR 1=1 --SELECT * FROM User WHERE id = '' OR 1=1위의 형태와 같이 주석과 OR연산을 통하여 모든 아이디 비밀번호를 조회하여 악의적인 행동을 이어갑니다.  Union based SQL Injection Union이라는 키워드를 이용한 SQL InjectionSELECT * ..
[Spring Security] Cors Cors SOP(동일 출처 정핵)으로 인해 다른 출처의 리소스접근이 막힌 것을 풀어주는 "다른 출처간에 리소스를 공유할 수 있도록 해주는 정책"입니다. 왜 이런게 있을까 제가 착한닷컴이라는 사이트를 사용한다 가정합니다. 저는 착한닷컴에 정책에따라 쿠키나 토큰등을 사용합니다. 그런데 어느날 정체모를 링크를 눌러 나쁜닷컴의 리소스를 저의 크롬에 받아드립니다. 그렇게되면 나쁜닷컴의 코드들이 저의 쿠키나 토큰등을 악용할 목적으로 가져가게됩니다. 그럼 나쁜닷컴의 운영자들은 저의 쿠키나 토큰을 통해 나쁜짓을 마음껏 할 수 있는 상황이 발생합니다. 그렇기에 동일 충처(Origin)에서 온 요청만을 처리하도록 규제하는것이 sop입니다. 사용방법 setAllowCredentials : 내 서버가 응답을 할 때, json..
[Spring Security] Security Session 인증 사용자의 신원을 검증하는 행위 ex) 로그인 인가 사용자에게 특정 리소스나 기능에 액세스할 수 있는 권한을 부여하는 행위 ex) USER, MANAGER, ADMIN.. 사용이유 Http 프로토콜은 기본적으로 Stateless한 특징을 지니고있어 서버 디자인이 간편합니다. 하지만 Stateless 하기에 사용자에게 매번 인증에 관한 절차를 묻게됩니다. 이를 위해 Cookie나 Session을 사용해서 사용자의 불편함을 덜어줍니다. Spring Security Spring Security란 Spring기반의 어플리케이션의 인증과 인가를 담당하는 프레임워크입니다. Spring Security는 Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 관리할 수 있고, Session-Cooki..
[Spring] WS/WAS WS (Web Server) 정적인 처리를 제공하는 서버로 HTML, CSS ,JS, JPG와 같은 작업을 처리합니다. 정적인 작업은 WAS로 넘기지 않고, 바로 처리해버립니다. 동적 요청이 많을경우 WS 자체의 Load Balancing을 통하여 다수의 WAS에 정해진 규칙에따라 요청을 배분합니다. 서버의 Proxy 역할을 수행하여 WAS자체의 ip를 외부에 노출시키지않습니다. 또한 helath check를 통하여 WAS의 통신상태도 점검할 수 있습니다. ex) apache, nginx.. WAS (Web Application Server) 동적인 처리를 제공하는 서버로 동적 처리를 통해 WS에 정적인 정보를 제공합니다. 일반적으로 WS의 기능도 포함하고있어 웹 서버 없이도 서비스가 가능합니다. DB와..
[Spring] IOC-DI #3 IOC와 DI IOC : 제어의 역전으로써 프로그램의 흐름을 프레임워크가 제어한다는 것입니다 DI : 의존성주입으로 외부에의해 즉 ioc 컨테이너에 의해 의존성이 주입되어 객체를 생성하지않아도 프레임워크가 관리해줍니다. 여기서 알다싶이 IOC 라는 개념은 DI 라는 개념을 통해 객체의 생성, 소멸과같은 라이프 사이클을 프레임워크가 관리하는것을 의미할 수 있습니다. 또한 DI 는 IOC 라는 개념을 설명하기위한 디자인패턴이라고 설명할수 있을것같습니다. Repository나 Service, Controller등 객체를 만들지 않고 사용할 수 있었던 이유는 Spring Boot가 제공하는 IOC Container 덕분입니다. IOC Container에 등록된 필요객체는 @Autowired를 통해 객체를 ..