2012-01-23 2 views
0

WCF 웹 서비스가 있습니다. 이 서비스에 대한 호출을 응용 프로그램의 단일 페이지로 제한하려고합니다. 이 페이지는 공개적으로 열리고 있습니다. 이 웹 서비스에 대한 호출의 출처를 확인할 수있는 방법이 있습니까? 나는 다음과 같이 말하고 싶다 if (ThisRequestCameFromThisPage()) {goAhead(); }WCF의 웹 서비스 호출 원점 감지

고마워요!

답변

0

MAC 유효성 검사와 비슷한 작업을 수행 할 수 있습니다. 서버 측에서 암호화 된 토큰을 생성하고 숨겨진 양식 요소, 자바 스크립트 변수 등에 포함 시키십시오. 서버에서 렌더링하는 동안 페이지에 임베드하여 자바 스크립트를 통해 가져올 수 있음을 나타냅니다. WCF 서비스에 전화하십시오. 토큰을 호출에 전달하고 서버 측에서 유효성을 검사합니다.

암호화 된 토큰 안에 있어야하는 것은 클라이언트의 IP 주소 (REMOTE_ADDR)와 토큰을 만료시킬 수있는 날짜/시간과 같은 것이어야합니다. 토큰은 서버에서만 암호화되고 해독되므로 알맞은 키는 데이터를 안전하게 유지해야합니다.

0

요청 개체의 리퍼러를 확인할 수 있습니다. 그러나 이것은 매우 쉽게 스푸핑되며 의존해서는 안됩니다.