javascript_Browser Security

장봄·2020년 7월 2일
0

code-states_IM_4주차

목록 보기
3/3
post-thumbnail

CORS란?

javascript로 같은 도메인에서의 접근은 항상 가능하지만 도메인이 다른 경우에는 접근을 막는다는 정책인 SOP정책을 깨고 외부 도메인에서의 접근을 허용해주는 규약이다. 같은 페이지라고 이미지나 동영상과 같은 소스별로 도메인이 다른 경우 접근을 허용해서 요청이 가능하도록 할 수 있게 한다.

CORS 종류

1) Simple(단순요청)

  • GET, HEAD,POST중 1가지 방식 사용해야함

    • POST일 경우 셋중 하나여야함

    • application/x-www-form-urlencoded

    • multipart/form-data

  • text/plain

  • 커스텀 헤더를 전송하면 안됨

2) Preflight(미리전송)

도메인에서 요청을 하기전에 실제 요청이 안전한지 서버가 미리 파악할 수 있도록 Option을 보내서 확인한다. 모든 요청이 Preflight을 발생시키는 것은 아니다.

3) Credential

3) Non-Credential

아래의 코드는 허용을 위한 cors설정의 예시이다.

const defaultCorsHeaders = {
  //접근을 시도하는 모든 도메인을 허용한다는 의미이다.
  "access-control-allow-origin": "*",
  //접근을 허용하는 메소드를 말해준다.
  "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS",
  //해더에는 content-type과 accept만 쓸 수 있다.
  "access-control-allow-headers": "content-type, accept",
  //preflight request는 10초까지 허용된다.
  "access-control-max-age": 10, // Seconds.
};

CORS_MDN

CORS정의출처블로그https://cchoimin.tistory.com/entry/JavaScript-CORS%EB%9E%80

CORS해결출처블로그https://velog.io/@jmkim87/%EC%A7%80%EA%B8%8B%EC%A7%80%EA%B8%8B%ED%95%9C-CORS-%ED%8C%8C%ED%97%A4%EC%B3%90%EB%B3%B4%EC%9E%90


XSS(Cross Site Script)

클라이언트가 서버를 신뢰할 때 발생한다. 사용자를 대상으로 공격하며 정상적인 웹에 악성스크립트를 주입해서 공격하는 방법이다. 이것은 스크립트를 문자열로 변환하는 장치를 미리 마련해서 예방하는 방법이 있다.

위험성

  • 쿠키 정보 킻 세션 ID 획득

  • 시스템 관리자 권한 획득

  • 거짓 페이지 노출

출처블로그https://4rgos.tistory.com/1

CSRF(Cross Site Request Forgery)

서버가 클라이언트를 신뢰할 때 발생한다. 사용자가 자신의 의지와는 무관하게 직접 공격자가 만든 피싱페이지에 접속해서 요청을 하고 이렇게 얻은 피해자의 인정정보를 가로채 악용하는 공격하는 방법이다.

출처블로그https://itstory.tk/entry/CSRF-%EA%B3%B5%EA%B2%A9%EC%9D%B4%EB%9E%80-%EA%B7%B8%EB%A6%AC%EA%B3%A0-CSRF-%EB%B0%A9%EC%96%B4-%EB%B0%A9%EB%B2%95

profile
즐겁게 배우고 꾸준히 블로깅하는 개발자입니다 ;>

0개의 댓글