그것은 우리의 컨텐츠를 확보 할 수있는 유일한 방법처럼 보이는 우리의 자바 스크립트가 일치 호스팅하는 페이지의 URL을 확인하는 것입니다 구독 사이트.
아,하지만 클라이언트 측 코드 또는 서버 측 코드가 있습니까?
둘 다 단점이 있습니다. 일부 브라우저는 Referer
헤더를 전혀 전달하지 않으므로 서버 측 코드로 작업하는 것이 신뢰할 수 없습니다. 스크립트의 복사본을 유지하면서 캐시를 중단하고 Referer-check가 발생하지 않도록하려면 서비스해야합니다 nocache 또는 Vary: Referer
헤더를 사용하면 성능에 영향을 미칩니다.
반면에 반환하는 스크립트에서 클라이언트 측 검사를 수행하면 실행중인 환경이 방해받지 않았는지 확인할 수 없습니다.예를 들어 당신의 포함 스크립트 태그와 같은 인 경우 :
<script src="http://include.example.com/includescript?myid=123"></script>
및 서버 측 스크립트는 도메인 customersite.foo
를 사용하여 고객의 ID,이 스크립트로 응답 할 수있는 것으로 123
을 보았다 :
if (location.host.slice(-16)==='customersite.foo') {
// main body of script
} else {
alert('Sorry, this site is not licensed to include content from example.com');
}
포함 사이트가 String.prototype.slice
을 항상 customersite.foo
을 반환하는 함수로 바꿀 수 있다는 점을 제외하고는 어느 정도 간단합니다. 또는 스크립트 본문에 사용 된 여러 가지 다른 기능이 용의가있을 수 있습니다.
다른 보안 컨텍스트의 <script>
을 포함하면 포함 사이트가 원본 사이트를 신뢰해야 최종 사용자 암호를 도용하거나 큰 goatse로 바꾸는 보안 컨텍스트에서 문제가 발생하지 않습니다. 그러나 원본 사이트의 코드는 포함 사이트의 잠재적으로 악의적으로 사용자 지정된 보안 컨텍스트의 게스트 일뿐입니다. 한 사이트에 다른 사이트의 스크립트가 포함되어있는 경우 두 당사자간에 신뢰의 척도가 존재해야합니다. 도메인 검사는 절대 100 % 절대 안전한 보안 메커니즘이 아닙니다.
가능한 경우 스타일 시트를 포함하고 싶습니다. 그러나 자바 스크립트와 함께로드 할 수 있는지 잘 모르겠습니다.
확실히 스타일 시트 요소를 문서의 head 요소에 추가 할 수 있지만 다른 페이지 스타일을 방해하지 않도록 강력한 네임 스페이스가 필요합니다. 단순화를 위해 인라인 스타일을 사용하고 페이지의 기본 스타일 시트에서 특수성을 방해하지 않으려는 경우가 있습니다.
실제로 생성 된 콘텐츠를 호스트 페이지에 포함 시킬지 여부에 따라 달라집니다 (이 경우 포함 사이트에서 자신이 원하는 스타일을 포함하도록 할 수도 있습니다). 혼자, 컨텍스트에 영향을받지 않습니다 (이 경우 자신의 스타일로 에 콘텐츠를 넣는 것이 더 나을 것입니다). (가) 내가 호스트 페이지에 jQuery를 잡아 당겨 피하려고 할 파일이 처음
JQuery와
에 전화 것 포함 있도록
내가 jQuery를 사용하여 생각 해요. noconflict
을 사용해도 다른 프레임 워크와 같이 복잡한 스크립트가 존재할 것으로 예상하지 않는 다른 스크립트와 충돌 할 수 있습니다. 동일한 페이지에서 두 개의 프레임 워크를 실행하는 것은 이상한 오류를 만드는 방법입니다.
(당신이 <iframe>
경로를했다하면, 다른 한편으로는, 당신이 갖고 노는 자신의 스크립트 컨텍스트를 얻을 때문에이 문제가되지 않을 것입니다.) 스택 오버플로, 마이크에
하나에 오신 것을 환영합니다! – Sampson
감사합니다. Jonathan, 사이트에서 좋은 팁을 발견했습니다 – Mike