2011-06-15 4 views
2

제 웹 사이트에서 사용자 작업에 대해 제 3 자 웹 사이트에 알릴 방법을 찾아야합니다. 서버 양면 연결이 필요하지 않습니다. 개인 키로 해싱하는 것은 요청에 서명하여 사용자가 악용 할 수 없도록하는 데 사용됩니다.HTML/Javascript : 외부 사이트에 대한 추적 콜백

내 질문은 어떻게 안전하게이 요청을 보낼 수 있습니다.

  • 추적 이미지 : XSA 가능한
  • 은 iframe : XSA,
  • 스크립트가 포함 프레임 차단기 : evilness (jQuery로) 최선
  • JSONP에서 : ??
  • 다른 사람?

누군가 JSONP 답변에 Javascript를 삽입 할 수 있는지 알고 있습니까? JSONP는 JSON을 매개 변수로 호출하는 자바 스크립트이지만 다른 자바 스크립트 호출을 포함 할 수도 있습니다. jQuery는 jsonp 콜백에 악성 콘텐츠가 있는지 어떻게 든 확인합니까?

+0

RPC http://en.wikipedia.org/wiki/Remote_procedure_call을보십시오 – Chumillas

+0

제 3자를 신뢰하지 않으면 JSONP를 사용하지 않아야합니다. 동의 한 콜백을 포함하는 스크립트 일뿐입니다. – Magnar

답변

0

최신 브라우저 만 타겟팅하고 모든 도메인을 제어해야하는 경우 HTTP 액세스 제어 정책을 만들어 서로 통신 할 수 있습니다. 그러나 그 경우가 아닌 것으로 보이기 때문에 JSONP를 사용해야 할 것이다.

JSONP과 정확히 일치하기 때문에 "스크립트 포함"을 "최선을 다해 악의"라고 말하면 재미 있습니다. 최근까지 브라우저가 도메인 간 요청을 할 수 없었기 때문에 타사 클라이언트 측에서 아무 것도 얻지 못하는 유일한 방법은 해당 타사의 스크립트를 포함하는 것이 었습니다. JSONP는 JSON을 함수 정의 안에 반환하는이 해결 방법을 이용합니다.이 스크립트는 호출하여 포함 된 데이터를 가져올 수 있습니다.

+0

그래, 그게 내 질문에 관한거야. jQuery가 JSON을 구문 분석 할 수있는 것처럼 JSONP가 "파싱"된 경우 또는 단순한 스크립트 인 경우 JSONP를 구문 분석 할 수 있습니다. 경계를 우회하려면 JSONP는 직접 스크립트 포함이어야합니다. 그렇지 않습니까? 그래서 거기에있는 모든 것은 jsonp 콜백 함수뿐만 아니라 실행될 것입니다. 편집 : 그리고 아니, 나는 도메인을 제어하지 않습니다. 나는 추적이 가장 좋을 것 같아요. XSA는 여전히 문제이지만 많은 페이지에 존재합니다. – Spammer

+0

아닙니다. JSONP는 매우 구체적인 형식입니다. JSON 응답은 콜백 함수로 래핑됩니다. JavaScript의 제한된 부분 만 빠져 나갈 수 있습니다. 여러분이 좋아하는 JS 코드를 넣는 것은 일반적인 응답이 아닙니다. –

관련 문제