CORS 와 XSS, Browser Security

📅 TIL #51



🎯 Achievement Goals


  • CORS가 왜 필요한지 이해할 수 있다.
  • XSS가 어떤 원리를 통한 공격 방법인지 이해할 수 있다.
  • XSS를 어떻게 방지하는 지 이해할 수 있다.





👉 XSS


XSS란? Cross Site Scripting의 뜻으로, 자바스크립트 태그를 삽입해서 개발자가 고려하지 않은 기능이 작동하게 하는 치명적인 공격이다.

결국 이런 공격은 클라이언트가 서버를 신뢰하고 있기 때문에 발생하는 이슈라고 한다. 서버로 부터 오는 데이터가 정상적일 것이라고 믿고 있기 때문이다.



그러면 XSS 어떻게 막을 것 인가?


오늘 스프린트 강의에서는 간단한 XSS 필터 방법을 알려주셨다. 보통 태그를 통해서 공격을 해오기 때문에 태그의 "<" 이 부분과 ">" 이 부분을 특수문자 처리를 해서 공격를 할 수 없게 만드는 것이다!!


.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')


보안은 보안업체에 맡기는게 최고라고 하셨지만! 그래도 기본적인 것은 알고 있으면 도움이 된다고 한다. 기본적인 것만 복습을 해놓자.





👉 CORS


CORS


CORS(Cross-Origin Resource Sharing)란? 직역하면 교차 출처 리소스 공유이다.

한 출처에서 실행 중인 웹이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하는 체제이다.

즉, 위 사진처럼 원래는 하나의 사이트에서만 하나의 기능(same-origin requests)이 가능했는데, CORS를 통해 예외 조항(CORS)을 만든 것이라고 보면 된다.

그리고 CORS는 브라우저를 사용하는 유저들을 보호하는 정책이다. 브라우저의 자발적인 보호 조취인데, 이 뜻은 그렇지 않을 경우도 있다는 뜻이 된다.







🙌 느낀점


오늘은 매우 힘든 하루였다. 왜냐하면 그동안 쌓인 피로도가 극도에 달하는 날이였다 ㅠㅠ 공부도 중요하지만 컨디션 조절도 정말 중요하다는 것을 깨달았다. 이번주가 특히 집중이 정말 잘 안되었고, 피곤했다. 아무래도 그동안 5시간 미만으로 잤던 탓에 그런 것 같다. 이번주도 정말 배울 것이 많고 중요하지만, 일단 복습에 집중을 하면서 일찍 자야겠다. 그리고 다시 컨디션을 회복하자!





👊 내일의 TIW(today I Will)

HTTP 모듈