2014-12-17 1 views
1

CORS 개념을 파악하는 데 문제가 있습니다.CORS가 앱을 어떻게 보호합니까?

동일한 방식으로 표시되는 방식은 앱이 "신뢰할 수없는 도메인"으로 아약스 호출을하지 못하도록 보호합니다. 따라서 mydomain.comsomedomain.com으로 ajax를 호출하며 리소스 JSON/Script는 검색되지 않습니다.

이것은 XSS 취약점이 발견되었을 때 웹 응용 프로그램을 보호하기위한 것으로 사용자가 태그를 사용하여 해당 코드를 페이지 콘텐츠에 저장하고 이제 다른 도메인으로 ajax를 호출 할 수 있다고 생각했습니다. - 맞습니까? 나는 경우가 mydomain.com의 요청이 somedomain.com에 오는 경우는 허용되어야한다는 서버 정책이기 때문에

바로 다음 CORS에는 보호 기능을 제공하지 않습니다. 자, 내가 공격하는 경우 스크립트를 추가하고 내 서버에서 CORS 정책을 설정하여 해당 요청을 허용합니다. 내가 얻은 것에서 CORS는 완전히 같은 출처 정책을 우회 할 수 있습니다.

: |

UPDATE :

은 조금 더 나는 CORS가 mydomain.com 응용 프로그램을 보호하기 위해 아니라고 주장 답을 찾았지만 somedomain.com 읽기입니다. somedomain.com이 은행 송금을위한 API를 제공하는 은행이라고 가정 해 보겠습니다. 은행은 앱이로드 된 브라우저에서 오는 API 호출을 허용합니다 (동일한 도메인). CORS 정책에서 그들은 mydomain.com에서 온 스크립트가 API를 호출 할 수 있다고 말할 수 있습니다. 클라이언트 브라우저는 에서 오는 공격에 은행을 여는 은행 집합에 대한 쿠키를 가질 수 있습니다. mydomain.com

답변

-1

나는 조금 더 복잡한 공격으로 생각하고 싶습니다. 아이디어는 캐주얼/덜 숙련 된 해커가 놀 수 없도록하는 것입니다. 코드 난독 화와 비슷한 것.

+0

글쎄, 나는 아마추어 공격자의 공격을 격퇴하기 위해 W3C가이 모든 것을 통과 할 것이라고 생각하지 않는다. – luigi7up

2

CORS는 앱을 보호하지 않습니다.

동일한 출처 정책은 다른 사이트가 로그인 한 사용자의 브라우저를 사용하여 해당 사이트의 데이터를 읽지 못하도록함으로써 응용 프로그램을 보호합니다.

CORS를 사용하면 서버가 다른 사이트에 해당 데이터를 읽을 수있는 권한을 부여 할 수 있습니다 (정보를 공유해야하는 경우). 즉 CORS는 "여기에 같은 원산지 정책을 적용하지 마십시오"라고 말합니다.


이제 내가 내 스크립트를 추가하고 내 서버에 내가 그 요청을 허용하는 CORS 정책을 설정합니다 공격하고있는 경우.

아니요. 데이터를 호스팅하는 서버는 CORS 헤더를 설정해야합니다. 다른 사람의 사이트에서 데이터를 읽을 수있는 권한을 자신의 스크립트에 부여 할 수 없습니다.


XSS는 관련이없는 보안 취약점 범주입니다. CORS와 같은 원산지 정책은 그것들과 관련이 없습니다.

+0

동일 원산지 정책은 다른 사이트가 로그인 한 사용자의 브라우저를 사용하여 데이터를 읽지 못하도록함으로써 앱을 보호한다. 그것. - 악의적 인 스크립트가 쿠키를 다른 도메인으로 보내는 것처럼? – luigi7up

+0

쿠키 자체를 읽을 수 없습니다. 동일 원산지 정책은 사이트가 브라우저에게'http : // mybank.com/myaccountdetails /'를 얻지 못하게하여 브라우저가 이미 데이터를 가져와야하는 쿠키를 사용하게하고 반환 된 데이터를 읽게합니다. – Quentin

+0

죄송합니다. 다시 앱이 공격을 당하고