2011-09-20 2 views
0

XSS를 시도했기 때문에 아래가 작동하지 않는다고 생각했지만 로컬 포트 ​​리디렉션을 확인하여 시도했지만 여전히 작동하지 않습니다. 누군가 XSS가 아닌지 알려 주실 수 있습니까? 그렇지 않다면 왜 작동하지 않는 겁니까?외부 사이트에 대한 Ajax.Request : XSS 여부

<html> 
    <div id="output"></div> 
    <script src="prototype.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function test() 
     { 
     this.url = "http://www.google.com" 
     } 

     test.prototype.run = function() 
     { 
     var request = new Ajax.Request(this.url, 
      { 
       method: "get", 
       onSuccess: this.success.bind(this), 
       onFailure: function(response) { alert("failure"); } 
      }); 
     }; 

     test.prototype.success = function(response) 
     { 
     var debug = "this.url = " + this.url + ",<br>" 
      + " response.status = " + response.status + ",<br>" 
      + " response.statusText = " + response.statusText + ",<br>" 
      + " response.readyState = " + response.readyState + ",<br>" 
      + " response.responseText = " + response.responseText + ",<br>" 
      + " response.responseXML = " + response.responseXML + ",<br>" 
      + " response.responseJSON = " + response.responseJSON + ",<br>" 
      + " response.headerJSON = " + response.headerJSON + ",<br>" 
      + " response.request = " + response.request + ",<br>" 
      + " response.transport = " + response.transport + ",<br>" 
      + " response.transport.readyState = " + response.transport.readyState + ",<br>" 
      + " response.transport.responseText = " + response.transport.responseText + ",<br>"; 
     document.getElementById("output").update(debug); 
     }; 

     new test().run(); 
    </script> 
</html> 

답변

3

그것은 (웹 애플리케이션의 클라이언트 측을 공격 할 수있는 방법입니다)하지만, 단순히 여기에 적용되는 동일 출처 정책입니다 XSS 아니다. 자신이 아닌 다른 도메인에서 Ajax 요청을 사용하여 데이터를 요청할 수는 없습니다 (웹 애플리케이션이로드 된 고유 한 의미).

자세한 내용은 여기를 참조하십시오. http://en.wikipedia.org/wiki/Same_origin_policy

+1

정확히 일치합니다. XSS는 공격입니다. 이런 종류의 공격을 막기위한 기원 정책이 있습니다. 그렇지 않으면 사이트가 단순히 gmail 또는 다른 사이트에서 데이터를로드하고 정보를 훔칠 수 있습니다. Ajax에서 외부 사이트의 데이터를로드하려면 웹 사이트에서 프록시를 사용하고 프록시를 통해 데이터를로드하십시오. – Erlend

+0

맞습니다. –

관련 문제