공부

보안(짧음)

github.com/baeharam/Must-Know-About-Frontend

 

baeharam/Must-Know-About-Frontend

:mortar_board: 취준생이라면 반드시 알아야 하는 프론트엔드 관련 지식들. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.

github.com

가장 아래 보안탭 타이핑

 

 


동일 출처 정책(Same-Origin Policy)

 

- 정의 : 어떠한 문서나 스크립트가 다른 프로토콜 / 포트 / 호스트에 있는 리소스를 사용하는 것을 제한하는 정책.

 

해결방법

 

- document.domain - 단편적인 방법으로, 동일한 도메인으로 설정함을 통해 SOP 정책을 피할 수 있다. 만약, 현재 도메인이 http://store.company.com/index.html 이라면,

document.domain = "company.com";

와 같이 설정해서 http://company.com/index.html에 요청을 보낼 수 있다. 단 파이어폭스에서 안되고, 2개의 html 파일에 관련된 스크립트 파일에 모두 위와같이 설정해야 하고, 서버와 통신할 수 없다고 함. 그냥 쓰면 안될듯

 

- CORS : HTTP 헤더를 사용해서 클라이언트와 서버로 하여금 서로에 대해 인지하고 한 출처에서 다른 출처의 자원을 사용할 수 있게 하는 매커니즘이다. 클라이언트가 서버에 HTTP 요청을 보낼 때 HTTP 헤더의 Origin 속성에 자동으로 값이 할당된다.

Origin: http://company.com

이 도메인에서 다른 출처의 자원을 사용하기 위해 ajax 요청을 했다고 하면 SOP 정책 때문에 에러가 발생한다. 따라서 이를 해결하기 위해 서버의 HTTP 응답 헤더에 다음과 같이 요청을 허용하는 도메인을 명시한다.

Access-Control-Allow-Origin: http://company.com

 

- 프록시 서버 : 프록시 서버는 클라이언트와 서버 사이에서 정보교환을 도와주는 서버이다. 리소스를 요청하고 하는 서버의 Access-Control-Allow-Origin 속성을 수정할 수 없는 경우에 굉장히 유용하다. 프록시 서버가 실제 서버에 요청을 보내서 받아온 다음 그걸 Access-Control-Allow-Origin 설정을 적절히 하여 클라이언트에게 돌려주는 방법이다. 단 이 방법의 경우 서버를 한단계 더 거치기 때문에 기존의 요청보다 느리다는 단점이 있다.

 


XSS와 CSRF

 

- XSS(Cross Site Scripting) - 웹 사이트 관리자가 아닌 사람이 웹사이트에 악성 스크립트를 삽입할 수 있는 취약점을 이용한 공격기법이다. 사용자로부터 받은 입력을 제대로 검증하지 않을 때 나타나며 사용자의 정보를 탈취하거나 비정상적인 기능을 실행할 수 있다.

    - 저장 XSS : 웹사이트에 취약점이 있는 웹 서버에 스크립트를 저장시켜서 해당 웹사이트를 요청하는 사용자로 하여금 스크립트를 실행하게 하는 기법이다.

    - 반사 XSS : 검색을 사용할 때 결과가 없으면 브라우저에서 입력한 값을 문서에 포함하여 응답하는데 이를 사용하여 스크립트를 실행하는 기법으로 악성 URL을 배포하여 클릭하도록 유도하는 방법을 사용한다.

     - DOM 기반 XSS : 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격하는 기법으로 반사 XSS와 마찬가지로 악성 URL을 배포하여 클릭하도록 유도한다.

 

XSS를 사용해서 사용자의 쿠키 정보 및 세션 ID나 시스템 관리자 권한을 획득할 수도 있다. 대응방법은 '<'을 '&lt;'로 바꾸는 방식의 위험 문자열을 미리 필터링하고, 보안 라이브러리를 사용하자.

 

CSRF(Cross Site Request Forgery) - 사용자가 의도치 않게 공격자가 의도한 행동을 하여 취약점을 노출시키거나 수정/삭제/생성등을 하게 만드는 기법. 이메일을 열거나 악성 사이트에 접근했을때 특정한 요청을 하는 CSRF 스크립트를 실행하는 방식이다. 대응방법 referer 검증 / CSRF 토큰 / 캡챠 사용

'공부' 카테고리의 다른 글

타입스크립트  (0) 2020.12.07
리액트  (0) 2020.12.06
플로이드 와샬  (0) 2020.12.04
네트워크  (0) 2020.11.30
JS  (0) 2020.11.28