단일 진입 점 URL이있는 Java 웹 응용 프로그램이 있고 외부 웹 응용 프로그램이 해당 URL로 리디렉션됩니다. 서버 측에서 쿠키를 사용하여 특정 도메인의 요청이 왔는지 확인할 수 있습니까?HTTP 요청의 도메인 이름을 확인할 수 있습니까?
편집 : 은 내가 당신이 HTTP 리퍼러를 알고 싶은 생각
단일 진입 점 URL이있는 Java 웹 응용 프로그램이 있고 외부 웹 응용 프로그램이 해당 URL로 리디렉션됩니다. 서버 측에서 쿠키를 사용하여 특정 도메인의 요청이 왔는지 확인할 수 있습니까?HTTP 요청의 도메인 이름을 확인할 수 있습니까?
편집 : 은 내가 당신이 HTTP 리퍼러를 알고 싶은 생각
외부 응용 프로그램 코드를 변경할 수 없습니다 ("이라는"그 URL을 페이지) :
String referrer = request.getHeader("referer");
편집
내가 말한 바에 따르면 gustafc은 HTTP 리퍼러가 클라이언트가 제어하는 값이며 완전히 다른 또는 심지어 클라이언트에 의해 삭제 된 것으로 스푸핑 될 수 있으므로 HTTP 리퍼러가 가짜 값이 아닌지 확인할 수 없습니다.
예. 요청 개체의 getRemoteHost()
또는 getRemoteAddr()
메서드에서 요청의 원본을 가져올 수 있습니다.
http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getRemoteHost()
getRemoteHost()가 리디렉션 발신자가 아닌 마지막 프록시를 반환하기 때문에 적절한 솔루션이 아닙니다 –
일부 프록시는 원래 클라이언트 IP를 전달합니다 예를 들어 아파치 mod_proxy는'X-Forwarded-For'를 사용합니다 .. – johnstok
당신은 HTTP referer를 확인할 수 있지만, 신뢰할 수 없습니다 : 그것은 가짜 쉽게, 그리고 일부는 개인 정보 보호를 위해 리퍼러를 사용하지 않도록 선택할 수 있습니다. 따라서 대부분의 경우 작동하지만 보안이나 기타 필수적인 문제에 의존하지 마십시오.
이유는 무엇입니까? 당신은 단지 요청이 특정 IP에서인지 확인해야하는 경우
주된 이유는 보안입니다. 사실, 요청에 암호화 된 키가 있습니다. 도메인 이름 –
dns 요청을 시도하여 결과가 HTTP referer와 일치하면이를 볼 수 있습니다. – Dimitri
@DmitryTikhonov 사용자가 다른 웹 사이트에서 길을 클릭하여 귀하의 웹 사이트를 방문했는지 또는 사용자의 요청이 특정 도메인에서 발생했는지 (즉, 기본적으로 사용자의 IP를 확인하는지) 확인하려는 중입니까? 나는 일종의 전제를 사용했다. 불가능한 일이다. 후자는 여기에있는 다른 포스터에서 설명한대로 꽤 가능합니다. – gustafc
(또는 IP 범위)이이 (프록시를 가정하면 방화벽 내에 지원하도록 방화벽에서 규칙을 구성 할 수 있습니다.
가 변경할 수있는 외부 서버가 Java 웹 앱으로 리디렉션되는 방식은 무엇입니까? – PbxMan