TIL(2021.03.17 - 03.18)

한국·2021년 4월 24일
0

TIL

목록 보기
25/33
post-thumbnail
post-custom-banner

클라이언트와 서버, 그리고 2 Tier Architecture


*출처 codeStates

  • 리소스를 사용하는 앱은 "클라이언트"라 부른다.
  • 리소스가 존재하는 곳은 "서버"라 부른다.
  • 리소스를 사용하는곳과 리소스가 존재하는곳을 분리해놓은것이 2 Tier Architecture 다른 말로는 클라이언트 서버 아키택쳐라고 부른다.

클라이언트와-서버 통신과 HTTP API


*출처 codeStates

  • 웹 앱에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해 대화를 나눈다.
  • API는 Application Programming Interface의 약자이며, Interface의 사전적 의미는 "의사소통이 가능"하도록 만들어진 "접점"을 의미한다. 이 의미에 따르면, 메뉴판도 인터페이스라고 볼 수 있다.
  • 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(API)를 제공해줘야 한다.
  • AJAX 는 Asynchronous Javascript and XML 의 약자로, 서버와 자유롭게 통신할수 있고, 페이지의 깜빡임 없이 seamless 하게 이용할수 있기때문에 필요하다. (XHR 과,javascript,dom을 이용)

브라우저는 항상 공격받고 있다.

  • 브라우저 내에서 자바스크립트를 통해 api를 불러오거나, 다이나믹 하게 DOM을 제어하거나, 인증정보를 사용하게 될수도 있기때문에, 보안에 신경을 써야만 한다.

어떤 공격들이 있는가?

  • XSS
    • 웹 브라우저에서 사용자가 입력 할수 있는 input태그 등에 악의적으로 script를 작성하여 해당 웹을 이용하는 다른 이용자의 개인정보 및 쿠키정보를 탈취하거나, 악성코드 심기, 웹 페이지를 변형시키는 공격을 말한다.
    • 이는 클라이언트가 서버를 신뢰 하기 때문에 발생한다고 볼수 있다.
    • 이 공격은 user를 희생자로 삼는다.
    • XSS공격은 어떤식으로 진행되는가
  • CSRF
    • 인터넷을 사용하는 유저가 자신의 의지와는 무관하게 공격자가 의도한 행위를 유저가 사용중인 특정한 웹사이트에게 요청하게 만드는 공격
    • 해커가, 유저가 인증받은 권한을 탈취하여 해당유저만 요청할 수 있는 주요 기능들을 사용하게 되는것이다.
    • 예를 들면, 나의 인스타그램 계정으로 광고성 글을 포스팅하는것을 들수 있다.
    • CSRF 공격은 해커가 사용자의 컴퓨터를 감염시킨다기보다, 권한을 탈취해서 하는 공격이라고 보는것이 맞다.

CORS


*출처 https://developer.mozilla.org/ko/docs/Web/HTTP/CORS

  • Cross-Origin Resource Sharing의 약어로, HTTP header를 사용하여 애플리케이션이 다른 origin(출처)의 리소스에 접근할수 있도록 하는 매커니즘을 뜻한다.
  • 우리가 사용하게 될때에는 다른 origin에서 나의 리소스에 함부로 접근하지 못하게 하기위해서 사용된다.
  • CORS 관련 내용은 이해하기도 많이 힘들고, 내용도 방대해서, 내가 보면서 가장 잘 이해할수 있었던 유튜브 링크를 첨부해 놓도록 하겠다.
  • 우아한Tech 럿고의 CORS

참고할만한 문서들

profile
소통하는 개발자를 꿈꾸는
post-custom-banner

0개의 댓글