문제

우리의 응용 프로그램 중 하나는 Iframe, Inside Salesforce에서 실행되며 참조자에 액세스하는 데 어려움을 겪고 있습니다. 그들은 우리가 일부 참조 수표를 수행하고, 요청이 Salesforce에서 나오고 있는지 확인하고 IP 주소를 확인해야합니다.

내 문제는 다음 두 가지 방법 중 하나를 통해 참조자에 액세스하려고 할 때마다 다음과 같습니다.

HttpContext.Current.Request.ServerVariables["HTTP_REFERER"]
HttpContext.Current.Request.UrlReferrer

그것은 나를 null로 돌려줍니다.

어떤 아이디어 어떤 아이디어가 참조자를 잡을 수 있습니까?

추신 : 나는 당신이 참조자를 스푸핑 할 수 있다는 것을 알고 있지만 그것은 요구 사항의 일부입니다.

도움이 되었습니까?

해결책

질문을 올바르게 이해하면 웹 페이지에 iframes를 귀하의 사이트에 포함시켜 사이트를 참조하는 클라이언트 사이트가 있습니다. 요청이 지정된 사이트 세트의 일부인 호스트 페이지에서 제공되도록 "보장"하려고합니다. 지정된 사이트 세트는 일련의 IP 주소로 설명됩니다. 그게 다루나요?

교활한. 먼저 참조자가 있다고 가정 할 수 있습니다. 호스트 이름을 Aquire로부터 아아이어야합니다 (사용하기 쉽습니다. Uri 유형). 그런 다음 DNS를 사용하여 호스트 이름의 IP 주소를 해결해야합니다 (.NET Framework에서는 너무 어렵지 않음).

물론 당신은 참조자를 가져와야하며 그것은 가장 까다로운 비트입니다. 브라우저가 항상 요청에 참조 헤더를 배치하지는 않습니다. 이는 심판 주소가 참조 자와 동일한 도메인에 있지 않은 경우에 특히 그렇습니다. IOW, 이것은 a입니다 쇼 스토퍼.

이 문제를 해결하기위한 더 나은 접근법 (스푸핑하기 쉬운)은 해시 기반 인증을 사용하는 것입니다. 너무 정교 할 필요는 없습니다 (원래 요구 사항이 어쨌든 참조 테스트가 충분하다고 느꼈다면).

다른 팁

페이지가 링크를 통해 요청 된 경우에만 참조자가 있습니다. 페이지가 열리면 주소를 직접 입력하여 브라우저의 주소 표시 줄에서 말하면 (또는 귀하의 경우 y iframe의 SRC를 설정) 참조자가 비어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top