2013-01-18 2 views
-2

내 서버에 PHP 파일이 있다고 가정합니다. 이제 내 HTML에는 PHP 파일의 경로/URL을 가리키는 자바 스크립트 코드가 있습니다. 특정 웹 사이트에서만 작동하도록 PHP 코드를 제한 할 수 있습니까?특정 웹 사이트의 PHP 파일 만들기

+0

http://php.net/manual/en/reserved.variables.server.php'$ _SERVER [ 'REMOTE_ADDR'] 여기에' – crush

+1

체크 -에 http : // 유래 .com/questions/426825/inspect-the-referrer-in-php – Buggabill

+1

다른 사람들이 지적했듯이 커다란 문제는 헤더 스푸핑입니다. IP 주소조차 스푸핑 될 수 있으며 스푸핑 된 IP 주소로 공격자가 서버로부터 응답을받지 못할 수도 있지만 필요하지 않은 경우도 있습니다. 예를 들어, 귀하의 경우 원래 요청자에게 응답이 반송되었는지 여부에 관계없이 코드가 서버에서 실행됩니다. – crush

답변

0

짧은 대답 : 예.


내 가정은 당신이 많은 다른 도메인에서 동일한 PHP 스크립트를 가지고있다, 당신은 당신이 당신의 PHP 스크립트를 가지고 있는지 확인해야


우선 일부 도메인에 대해 다르게 작동 할 실행중인 도메인을 감지하는 신뢰할 수있는 방법입니다. 이 설정은 어딘가에 있어야합니다. 나는 믿을 수 없다. HTTP_REFERER$_SERVER에 필요한 것이 없을 수도있다.

이 경우 스크립트가 수행해야 할 작업을 결정하기에 충분해야합니다.

+0

어떻게 생각 하시나요? 자바 스크립트는 클라이언트에 의해 호출됩니다. 특정 웹 사이트 (고객이 만든)와 고객이 직접 호출하는 것과 구분할 것을 어떻게 제안합니까? – Nanne

+0

차이는 없습니다. JavaScript와 PHP가 같은 도메인에서 실행된다고 가정합니다. PHP 스크립트가 다른 도메인에서 가져온 경우 ... 문제가 있습니다. API 키와 같은 인증 작업을 시작해야 할 수도 있습니다.하지만이를 열지 않으려는 웜이있을 수 있습니다. – Halcyon

+0

나는 따라 가지 않는다. 자바 스크립트는 클라이언트의 컴퓨터에서 실행됩니다. 클라이언트는 항상 요청의 소스이므로 도메인에있는 javascript와 다른 도메인에있는 javascript를 구분할 수 없습니다. – Nanne

0

시도 :

if ($_SERVER['SERVER_NAME'] == 'site1') { 
    // some code... 
} else if ($_SERVER['SERVER_NAME'] == 'site2') { 
    // some other code... 
} else { 
    // some other code... 
} 
관련 문제