2010-08-04 2 views
1

내가 어딘가에 그것을보고이 기능하시기 바랍니다다음 함수의 용도는 무엇입니까?

function CheckHost() 
{ 
    $url = parse_url($_SERVER['HTTP_REFERER']); 
    $host = $url['host']; 
    if($host == $_SERVER['SERVER_NAME']) 
     return true; 
    return false; 
} 

에 봐하지만 사용의 이해할 수 없습니다.

보안상의 이유로, 또는 무엇을 위해 그것을입니까? 관심

+0

내용은 이미 3 번 답변되었습니다. 함수를 추가하여 참조 자의 설정 여부를 확인하고 적절하게 행동 할 수 있습니까? 'referer' (sic) 헤더는 유효한 요청 일지라도 거기에있을 것이라고 보장되지 않습니다. – Wrikken

답변

2

에 대한

덕분에 나는 그것이 간단한 검사의 가정 (내가 보는 바와 같이, 그냥 스크립트와 같은 서버에서 마지막 요청이 확인) cross-site request forgeries (CSRFs)에 대해 또는 다른 사람들이 말하는 것처럼 핫 링크. 이 함수를 호출하는 PHP 스크립트는 핫 링크를 확인하기 위해 서버에 대한 모든 HTTP 요청을 에서 실행해야합니다.

0

리퍼러가 스크립트 위치와 같은지 확인합니다. 기본적으로 핫 링크를 방지하는 기능이 있습니다.

0

리퍼러가 요청과 동일한 호스트 이름인지 확인하는 것처럼 보입니다. 다른 사이트가 이미지 나 다른 콘텐츠에 직접 링크하지 못하게하는 것과 같은 용도로 사용됩니다.

0

CSRF protection에 사용할 수 있습니다. Referer는 항상 다른 도메인이어야하므로 CheckHost()은 false를 반환합니다.

관련 문제