Web Server

개발 공부 기록·2021년 5월 29일
0

Network

목록 보기
3/9
post-thumbnail

Web 보안 위협

브라우저에서 자바스크립트로 할 수 있는 것

  1. AJAX 요청을 통해 API 호출
  2. 다이나믹하게 DOM 제어
  3. 인증 정보를 브라우저에 저장
  4. 인증 정보 불러오기

=> 브라우저에서 자바스크립트로 할 수 있는 것들이 많기 때문에 보안에 위협 받음

XSS(Cross-Site Scripting)

보안이 약한 클라이언트에 대한 웹 기반 공격이고 클라이언트가 서버를 신뢰해서 발생하는 이슈이다.

브라우저에서 기본적인 XSS 공격은 막혀있다.

CSRF(Cross-Site Request Forgery)

서버가 클라이언트를 신뢰해서 발생하는 이슈이다.

서버는 인증 정보를 가지고 오면 신뢰
=> 유저가 인증 정보를 가진 체로 헤커의 링크를 누르면 해커는 인증 정보를 가로채서 서버에 요청

Web 보안 - MDN

CORS(Cross-Origin Resource Sharing)

위와 같은 보안 위협을 예방하기 위해 브라우저에서 두 개 이상의 서버와 연결 되는 것을 예외적으로 허용된 출처의 자원만 공유하게 해주는 정책이다.

SPA 같은 고도화된 최근의 웹이 등장하게 되면서 여러 곳에 있는 리소스를 활용할 필요가 있어 나왔다.

처음 전송되는 리소스의 도메인과 다른 도메인으로부터 리소스가 요청될 경우 cross-origin HTTP요청에 의해 요청된다.

클라이언트가 POST 요청하면 서버에서 OPTIONS 메소드를 통해 자체적으로 먼저 허용된 사이트인지 확인
OPTIONS 메소드: preflight request

같은 서버로 판단하는 세가지 기준
1. 프로토콜 / 2. 도메인 / 3. 포트번호

CORS - MDN

node.js_Web Server

HTTP 트랜잭션 해부

node.js의 HTTP 처리 과정

node.js 디버깅

node --inspect
node --inspect-brk // 사용자 코드 시작전 멈춤

에디터인 vscoderun debugger 활용 가능

node.js 디버깅

express.js

Express.jsNode.js 환경에서 웹 서버 또는 API 서버를 제작하기 위해 사용되는 인기있는 프레임워크이다.

Express로 구현한 서버가 http 모듈로 작성한 서버와 다른 점

  1. 미들웨어 추가가 편리하다.
  2. 자체 라우터를 제공한다.

Middleware

request에 필요한 기능을 더하거나 문제가 발견된 에러를 밖으로 걷어내는 역할

미들웨어를 사용하면 node.js만으로 구현한 서버에서는 다소 번거로울 수 있는 작업을 보다 쉽게 적용 가능

미들웨어를 사용하는 상황

  1. 모든 요청에 대해 URL이나 메소드를 확인할 때
    모든 요청에 동일한 미들웨어를 적용하려면 메소드 app.use를 사용

  2. POST 요청 등에 포함된 body(payload)를 구조화할 때(쉽게 얻어내고자 할 때)
    body-parser 미들웨어를 사용하면 이 과정을 간단하게 처리 가능

  3. 모든 요청/응답에 CORS 헤더를 붙여야할 때
    cors 미들웨어를 사용하면 이 과정을 간단하게 처리 가능

  4. 요청 헤더에 사용자 인증 정보가 담겨있는지 확인할 때

Express.js

profile
둔필승총(鈍筆勝聰) - 기억보다는 기록을

0개의 댓글