2011-03-24 2 views
5

사용자가 목록에 가입 할 수있게 해주는 자바 스크립트 위젯을 만들고 있습니다. 이 위젯은 고객 웹 사이트에 임베드 될 수 있습니다. 모든 클라이언트 측에서 구동되므로 요청을 서버에서 제외합니다. 필자는 본질적으로 위젯이 승인 된 사이트에만로드되도록 제한하는 방식으로 위젯을 "안전하게"만드는 방법을 찾아 내려고 노력했습니다.위젯 보안

Google지도는 제공하는 키를 사용하여지도를로드하는 사이트를 조회 할 수있는 것 같습니다. 그 효과에 대한 어떤 것이 완벽 할 것입니다.

위젯 디자인 : Javascript가 DOM을 HTML에 삽입합니다. 또한 iframe 요소를 추가합니다. iframe은 내 사이트에서 양식을로드하여 요청을 처리합니다. 키가 iframe URL로 전달되어 양식 설정을로드합니다.

코드를 찾지 않아도 의사 코드는 완벽하며 기술을 놓친 것입니다.

답변

0

웹 서버가 GET 요청을 통해 위젯을 제공하고 key=xyz 매개 변수가 전달 될 것으로 예상됩니다. 서버는 위젯 응답을 반환하기 전에 키가 유효한지 확인합니다.

고객이 클라이언트 컴퓨터의 JavaScript에서 키를 보내야하는 것이 문제입니다. 따라서 모든 고객의 고객은 고객의 키를 알 수 있습니다. 즉, 고객이 자신의 키를 비밀로 유지할 것으로 기대하는 것은 무리입니다.

저는 Google Maps does이 각 키를 도메인과 연관시키는 것으로 믿습니다. 위젯을 iframe에 삽입하는 경우 Referer 헤더를 확인하여 실제로이 요청이 고객의 웹 사이트에서 왔는지, 고객의 키를 잘라낸 다른 웹 사이트가 아닌지 확인할 수 있습니다.

매우 안전합니다 (다른 웹 사이트에서는 키를 지불하지 않고 위젯을 호스팅 할 수 없습니다). 유일한 나머지 질문은 키가 어떤 용도로 사용됩니까? Referer를 사용하여 위젯에 액세스 할 수있는 사이트를 인증하고 키를 제공하는 번거 로움을 겪지 않도록하십시오. 나는 그것이 필요한 이유를 생각하는 것처럼 보이지 않는다. 아마도 누군가가 의견에서 그것을 생각할 수 있습니다.

+0

호스트 세부 정보에서 키를 생성하고 사이트에 추가하는 코드의 일부로 키를 자동 생성/생성하는 것은 사람들이 자동화 된 인터페이스 등을 통해 위젯을 요청하고 사용하게하려는 경우에 유용합니다. 누가 위젯을 사용하고 있는지에 관심을 가져야합니다. 오히려 위젯을 사용할 수있는 올바른 단계를 거쳤습니다. 따라서 처음에 호스트에 대한 추가 정보를 캡처 할 수 있습니까? – ddtpoison777

+0

Referer는 보안 기능으로 사용할 수 없습니다. 선택 헤더이며 모든 클라이언트가 임의로 변경할 수 있습니다. – CLod

+1

맞아요, 클라이언트는 Referer 헤더를 조작 할 수는 있지만 웹 페이지에서 Referer 헤더를 변경하는 것은 불가능합니다. 브라우저를 삽입 iframe에 추가합니다. 문제는 다른 _sites_가 허락없이 위젯을 삽입하는 것을 막는 것에 관한 것이므로 Referer를 확인하는 것이 안전해야합니다. – mgiuca