2010-06-28 3 views
0

우리 사이트 방문자가 클라이언트 측 (jquery/AJAX 사용)에서 사용할 외부 웹 서비스 세트를 빌드하고 있습니다. 웹 서비스는 공개적으로 사용 가능해야하지만 사이트 방문자의 액세스를 제한하고 싶습니다.캐시 된 환경에서 클라이언트 측 웹 서비스 요청 인증

중요한 것은 해당 사이트가 CDN 뒤에 있으며 페이지 콘텐츠를 24 시간 동안 캐시합니다. AJAX 요청은 캐시되는 것이 바람직하지만 인증 옵션이 제한된다는 점을 의식하고 있습니다. 방문자는 익명으로 사이트 및 서비스에 액세스합니다.

클라이언트 요청을 인증하기위한 표준 "패턴"은 무엇입니까? 나는 기밀 데이터를 다루지 않을 것이지만, 다른 사용자/사이트가 책임 (데이터 배포를 생각하십시오)과 성능상의 이유로이 서비스를 가로채는 것을 막고 싶습니다.

나는 매일 새로 고쳐지고 모든 클라이언트가 사이트 전체에서 사용하는 공유 된 비밀을 생각하고 있습니다. 모든 웹 서비스 요청에는 비밀이 포함됩니다. 꽤 기본이지만 서비스가 스푸핑 할 수없는 방식으로 발신자의 출처를 감지하는 다른 방법이 있습니까?

답변

0

웹 서비스에 대한 위협이 클라이언트 호출을 자동화하는 사람과 관련된 경우 서버 측에서 속도 제한을 구현할 수 있습니다. 귀하가 올바르게 언급했듯이, 고객은 각 요청에 대해 키를 제공해야 할 수 있습니다. 필사자 만이 웹 서비스와 상호 작용하려는 경우 Captcha와 같은 Human Interaction Proof를 구현할 수도 있습니다. 한 가지 확실한 점은 클라이언트가 사용할 "키"가 제어 된 방식으로 제공되어야한다는 것입니다. 한 번은 무제한 키를 기본적으로 제공하는 시스템을 접하게되었습니다. 즉, 자동화 컨트롤은 공격자가 많은 키를 요청하고 무제한 통화를 할 수 있으므로 효과적이지 못합니다. IP 주소를 사용하여 제한하는 경우 호스트 부분 (X)이 변경 될 수있는 IP 주소 (ABCX)의 네트워크 부분에 대한 요청을 제한해야합니다 (사용자가 프록시를 사용하지 않을 때). 클라이언트가 익명이면 최상위/"실제로 주소입니다.

+0

속도 제한은 생각하지 못했지만 합리적인 아이디어처럼 들립니다. – Michhes