2011-10-05 4 views
0

내 사이트에서 인증서 (이미지) 일반 코드를 기거하고 싶습니다. 회원 인증서가 그의 사이트에 표시됩니다. exmple abc.com은 내 등록 회원이며 그는 울부 짖는 소리등록 된 회원에게만 인증서 (이미지)를 표시하는 데 필요한 기능

img src="mysite.com?member=abc.com" 

또는 (페이스 북 소셜 플러그인처럼 나 페이스 북 등의 플러그인 등) 코드처럼 자신의 사이트에이 코드를 배치 할 때 abc.com로부터 호출 인증서 (이미지)하지만 때 같은 표시됩니다 코드 코드는 www.def.com과 같은 다른 위치에 적용되며 인증서 (이미지)는 표시하면 안됩니다.

+2

"junrate"는 (는) "생성"되도록 고안되었습니다. – Pointy

답변

2

이 같은 일을 수행 할 수 있습니다 :

1

2 certificate.php라는 서버에 PHP 파일을 생성하여 사용자가이처럼 액세스 할 수 있도록 허용 : <img src="http://www.yoursite.com/certificate.php?member=abc.com" />

3 확인 그 HTTP_REFERER가 올바른 도메인이 포함 된 경우 HTTP_REFERER

4는 $ _SERVER 변수는 참조 (abc.com)

5 이미지를 표시하거나 표시하지 않습니다.

$member = $_GET['member']; // Validate this field against an allowed list before continuing 
$referal = parse_url($_SERVER['HTTP_REFERER']); 
$hostname = str_replace('www.', '', $referal['hostname']); // Remove www. part 

if ($hostname == $member) 
{ 
    // This request is coming from an abc.com website 
} 
else 
{ 
    // I don't this think is coming from abc.com website 
} 
+0

나는 대신 당신이 Referer를보고 싶다고 생각합니다. 하지만 이것이 정상적으로 작동한다고 가정하고 있습니다. 최종 사용자는 abc.com을 방문하고 abc.com은 mysite.com의 이미지를 참조하는 페이지를 반환하며 mysite.com은 인증서 이미지 또는 goatse 이미지, 또는 뭐든간에. –

+0

요청은 헤더 데이터를 수정하여 스푸핑 될 수 있습니다. REMOTE_ADDR은 응답을 다시 보내는 IP 주소이기 때문에 할 수 없습니다. – Tom

+2

그러나 REMOTE_ADDR에는 유효성을 검사하는 데 필요한 올바른 정보가 포함되어 있지 않습니다. REMOTE_ADDR은 J. Random User의 컴퓨터의 IP 주소입니다. 내가 질문을 이해하는 방식으로, OP는 abc.com이 이것을 웹 페이지에 삽입 할 수 있기를 바란다. 따라서 abc.com은 mysite.com에서 이미지를 가져 오지 않습니다. Referer 헤더가 스푸핑 될 수 있지만, 그가 원하는 것일 것입니다. –

관련 문제