2012-09-14 4 views
1

고객이 사이트에 스크립트를 포함시키는 서비스를 만들고 있습니다. 스크립트 사용에 따라 고객에게 비용을 청구합니다 (서비스를 사용하기 위해 서버에 연결됩니다). 또한 iFrame 버전도 있습니다. 스크립트가 자신의 웹 사이트에 게시되었는지 확인하기 위해 window.location.host를 확인하는 것이 안전합니까? 고객은 여러 도메인을 지정할 수 있습니다.window.location을 사용하여 스크립트가 특정 사이트에만 포함되어 있는지 확인하는 것이 안전합니까?

+0

음, 아니, 그들은 그것의 세계에 액세스 할 때 잘못된 정보를 제공하는 사용자의 브라우저를 사용 할 수 있습니다 properties ... –

+0

또는 서버와 통신 할 때 잘못된 URL을보고하도록 스크립트 (LOL)를 편집 할 수 있습니다. 그들에게 소스 코드를주었습니다. 해당 코드는 보호되지 않습니다. 기본적으로 클라이언트 측은 완전히 신뢰할 수 없습니다. –

+0

글쎄, 스크립트를 편집해도 도움이되지 않을 것입니다. 사용자가 내 앱에서 제공하는 콘텐츠를받지 못하기 때문입니다. 잘못된 호스트를 제공하지 않는 브라우저는 사이트 소유자가 브라우저에 대해 아무 것도 할 수 없으며 브라우저를 사용하는 사용자가 콘텐츠를받지 못하기 때문에 더 큰 문제가됩니다. – bigblind

답변

1

전체적으로 읽지 말아야합니다.

window.location을 변경하면 브라우저가 해당 페이지로 이동한다고 생각합니다. 따라서 브라우저가 새 페이지로 이동하지 않으면 스크립트를 속이기 위해 어느 누구도 window.location을 변경할 수 없습니다.

하지만 .js 파일을 다운로드하여 수표를 지우지 못하게하는 것은 없습니다.

(이 파이어 폭스에서 발생 확인) (SIME 말한 것처럼 또는, 그들은 비표준 브라우저를 사용 될 수 있습니다)

+0

스크립트를 수동으로 다운로드하거나 사용자 정의 브라우저를 사용할 필요가 없습니다. 크롬이나 오페라에서 inspector를 사용하면 자바 스크립트 코드가 페이지에로드 될 때 단계별로 수행 할 수 있으며 원하는 값을 건너 뛰거나 변수 값을 변경할 수 있습니다. – taz

+0

그러나 스크립트를 다운로드하고 수표를 제거한 다음 다른 서버에서 결과를 호스트하면 이제는 홈 서버에 AJAX 호출을 할 수 없기 때문에 더 이상 작동하지 않습니다. 다른 도메인.최종 사용자가 Firebug 또는 Chrome을 사용하여 자바 스크립트를 즉시 편집하는 경우에는 서비스가 정상적으로 실행되지 않아야하는 도메인에서 서비스를 관리 할 때만 속일 수 있습니다 (또는 이와 다르게 말하자면 사용자는 비슷한 효과를 내기 위해 주석 처리 된 도메인 간 검사를 사용하여 웹 브라우저를 다시 컴파일 할 수도 있습니다.) – Celada

0

아니요. 모든 자바 스크립트는 클라이언트 측에서 실행되며, 원칙적으로 클라이언트 측 인증에 의존 할 수 없습니다.