Kimsora✨
article thumbnail
320x100
반응형

⭐️네트워크

 

 

 

 

📌CSRF나 XSS 공격을 막는 방법을 설명해주세요

  • CSRF 공격을 막기 위해서는 서버에서는 CSRF Token을 생성하여 세션에 저장하고 모든 요청에 대해 CSRF Token을 사용합니다  프론트엔드에서 요청 시 해당 Token을 함께 전송하여 인증합니다 
    => CSRF 토큰이 없으면 서버에서 해당 요청을 거부
  • SameSite 속성을 쿠키에 설정하여 도메인이 다른 사이트에서는 쿠키를 사용할 수 없도록 제한합니다
  • Referer 헤더를 검증하여 요청이 원래 페이지에서 보내진 것인지를 확인합니다
  •  XSS 공격을 막기 위해서는 XSS 필터링을 위해 DOMPurify, Sanitize 등과 같은 라이브러리를 사용하는 것이 좋습니다
    =>입력 값들을 유효성 검증하고, 특수문자들을 제외하는 정규식을 통해서 제거하는 방법보다 안전하다
  • 쿠키에 HttpOnly 속성을 설정하여 자바스크립트에서 쿠키에 접근하지 못하도록 합니다
  • CSP를 설정하여 웹 페이지에서 로드되는 자원들의 출처를 제한하고 허용된 스크립트만 실행되도록 제한 할 수도 있습니다
  • HTTP 대신에 신뢰할 수 있는 HTTPS를 사용하고 민감한 정보를 전송하는 경우에는 end-to-end 암호화 방법을 사용합니다 또한 SSL/TLS 프로토콜 버전도 최신 버전을 사용하는 것이 좋습니다.

💡Referer 헤더란?
리퍼러를 참조함으로써 현재 표시 하는 웹페이지가 어떤 웹페이지에서 요청되었는지 알수 있으며,어떤 웹사이트나 웹서버에서 방문자가 왔는지를 파악할수 있는 기능을 리퍼러를 통해 할수 있다
리퍼러 헤더를 이용하여 공격자가 악의적으로 요청을 보낸 것인지, 정상적인 웹페이지에서 보낸 것인지를 확인할 수 있다
=>페이지를 요청한 이전 페이지가 무엇인지를 알려주는 정보이다 이 referer는 보통 로그 분석이나 접근 제어를 할 때 이용한다
💡CSP란 (Content Security Policy)
웹 어플리케이션에서 로드되는 리소스(스크립트, 스타일, 이미지 등)들의 출처(origin)를 제한하는 정책을 설정하는 것 이를 통해, 악성 스크립트가 삽입된 외부 리소스들이 로드되지 않도록 하고, XSS 공격을 예방할 수 있다

 

 

 

 

 

📌프록시의 정의와 기능은 무엇인지 설명해주세요

  • 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용프로그램을 말합니다
  • 클라이언트와 서버 간의 통신 과정에서 프록시가 중간에서 데이터를 가로채서 처리하거나 변조하는 등의 역할을 수행합니다
  • 보안, 성능, 익명성 등 다양한 측면에서 유용하게 활용됩니다.
  • 프록시 서버는 보안 상의 이유로 인터넷에서 웹 사이트에 직접 접근하는 것을 차단하고 프록시 서버를 통해 접속하도록 유도하는 경우도 있습니다
  • 프록시 서버를 통해 인터넷에 연결되는 경우, 프록시 서버가 다른 IP 주소를 사용할 수 있으므로 클라이언트의 실제 IP 주소를 숨길 수 있습니다.
  • 캐싱 기능을 제공하여 이전에 요청한 콘텐츠를 저장하고, 동일한 요청이 들어올 경우 저장된 콘텐츠를 반환함으로써 네트워크 대역폭을 줄이고 응답 속도를 향상시킬 수 있습니다
  • 프록시 서버는 보안 검사를 수행하여 악성 코드나 스팸 등을 차단하거나 사용자의 개인정보를 보호하는 등의 역할을 수행할 수 있습니다.

 

 

 

📌TCP와 UDP는 무엇이며 차이점은 무엇인지 설명해주세요

  • TCP와 UDP는 OSI 7 계층들 중 TCP/IP의 전송 계층에서 사용되는 프로토콜입니다
  • TCP는 연결형 프로토콜로, 데이터 전송 전에 연결을 설정하고, 데이터 전송 후에 연결을 해제하는 과정을 거치며, 데이터 전송 과정에서 오류나 손실이 발생하면 검출하고 복구할 수 있는 기능을 가지고 있습니다
  • UDP는 비연결형 프로토콜로, 데이터 전송을 위한 연결 설정 과정이 없으며, 오류 검출과 복구 기능도 없어 데이터를 단순히 패킷화하여 전송하며, 패킷의 순서나 전송 여부는 보장하지 않습니다.
  • TCP는 대용량 데이터 전송이 필요한 애플리케이션에서 주로 사용되며, 파일 다운로드나 스트리밍 서비스에서 동영상을 전송할 때 사용됩니다.
  • UDP는 실시간으로 데이터 전송이 필요한 애플리케이션에서 주로 사용되며, 온라인 게임에서의 실시간 데이터 전송 등에서 사용됩니다
  • UDP는 TCP보다 전송 속도가 빠르며, 데이터의 신뢰성보다는 전송 속도가 중요한 경우에 사용됩니다
  • UDP는 오버헤드가 적기 때문에 데이터 전송량이 많아지는 경우에 유리합니다

 

 

 

 

 

📌CORS란 무엇이고 목적은 어떻게 되는지 설명해주세요

  • 웹 브라우저에서 실행되는 스크립트가 다른 출처(Origin)의 자원에 접근하는 것을 허용하는 방식을 말합니다.
  • 기본적으로 웹 브라우저는 보안상의 이유로 자신과 같은 출처의 리소스만 접근이 가능하도록 되어 있습니다. (프로토콜,호스트,포트) 하지만 다른 출처의 리소스에 대한 접근이 필요한 경우가 생기기도 하는데 CORS를 사용하여 다른 출처의 리소스에 접근할 수 있도록 웹 브라우저에게 허용할 출처를 명시해줍니다.
  • 보안상의 이유로 인해 웹 브라우저에서 실행되는 스크립트가 악의적인 출처에서 가져온 리소스를 사용하지 못하도록 하고, 안전하게 리소스를 공유할 수 있는 방법을 제공하는 것입니다
  • 서버 측에서는 원하는 출처에서만 요청을 받아들이고, 그 외의 출처에서는 요청을 거부하여 보안성을 유지할 수 있습니다

 

 

 

 

📌REST API에 대해 설명해주세요

  • RESTful 웹 서비스와 상호 작용할 수 있도록 하는 애플리케이션 프로그래밍 인터페이스 입니다
  • HTTP 프로토콜을 사용하며, 모든 자원은 고유한 URI를 갖습니다
  • HTTP 요청의 헤더나 URI 쿼리스트링, 메시지 바디 등에 담겨 보내며, 서버는 요청에 대한 적절한 응답을 반환합니다
  • HTTP 메소드를 적절하게 사용하여 CRUD(Create, Read, Update, Delete)에 맞는 작업을 수행합니다.
  • 응답의 상태 코드와 함께 응답 바디에는 요청에 대한 처리 결과나 클라이언트가 필요한 정보 등이 담겨져 있습니다
  • POST 요청에 대한 응답에서는 새로 생성된 리소스를 나타내는 URI Location 헤더에 담겨져야 합니다
  • RESTful한 API에서는 HATEOAS(Hypertext As The Engine Of Application State) 원칙을 따릅니다. 하이퍼미디어를 통해 클라이언트가 애플리케이션의 상태와 작업 가능한 동작을 이해하고 수행할 수 있도록 하는 것입니다.
  • REST API 설계 시 URI 설계와 HTTP 메소드 선택, 리소스 모델링 등에 대한 지침을 제공하는 것이 Swagger와 같은 API 설계 도구를 사용하여 보다 효율적으로 API를 디자인할 수 있습니다
728x90
반응형
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH