2011-11-13 2 views
-1

그 방법은 알고 계십니까? 한 곳에서만 스크립트가 실행되도록 보장하고 싶습니다. 가능한가?IP 또는 도메인 이름을 기반으로 지정된 서버에서만 PHP 스크립트를 실행하는 방법은 무엇입니까?

+0

당신 말은, 당신은 단지 서버 자체가 RU 할 수 있도록하려는 이온 큐브 또는 젠드 가드를 사용하는 것입니다 스크립트? 그렇다면 가장 쉬운 방법은 웹에 액세스 할 수없는 디렉토리에 넣는 것입니다. –

+0

왜 그렇게하고 싶습니까? 어떤 종류의 라이센스? – netcoder

+0

나는 오히려 IonCube 기술에 사용 된 솔루션을 찾으려고합니다. 아마 코드를 재배포하는 것을 피하고 싶습니다. $ _SERVER와 같은 솔루션이 만족스럽지 않습니다. 나는 약간의 난독 화를 시도하고 도메인 이름을 검사하는 한 줄의 코드로 막는 것에 대해 생각한다. 하지만 이것은 get_defined_vars() 함수로 인식 할 수 있습니다 - 맞습니까? – quardas

답변

1

아마도 가장 쉬운 방법은 네트워크 카드의 MAC 주소와 같은 하드웨어 식별자를 확인하고 Ion Cube와 같은 것을 사용하여 PHP 코드를 암호화하여 누군가가 PHP를 간단하게 편집하고 변경할 수 없도록하는 것입니다 MAC 주소가 검사됩니다.

0
if ($_SERVER['SERVER_ADDR'] == "127.0.0.1" && $_SERVER["HTTP_HOST"] == "mydomain.com") { 
    //execute script 
} 
0

확실하지 않은 질문입니다.

  1. 모든 사람이 스크립트에 액세스하지 못하도록하려는 경우. 또한 특수 사용자가 자신의 IP를 기반으로 만 액세스 할 수 있습니다. 그런 다음 $_SERVER['REMOTE_ADDR']을 사용하여 사용자 IP를 확인할 수 있습니다. 그러나 사용자가 프록시를 사용하지 않는 경우 $_SERVER['REMOTE_ADDR']을 확인하려면 X-Forwarded-For HTTP 헤더를 확인해야합니다. 더 나은 솔루션은 iptable 설정을 설정하여 서버에서 방화벽을 사용하는 것입니다.

  2. 누군가가 스크립트에 액세스하는 것을 원하지 않는다면 코드 외부에 DocumentRoot을 넣고 CLI에서 실행하십시오.

더 자세한 정보를 제공해주십시오.

0

"멍청한 놈"의 옵션 :이 작업을 수행 할 수 있습니다 렸기 때문에

if ($_SERVER['SERVER_ADDR'] == "127.0.0.1" && $_SERVER["HTTP_HOST"] == "mydomain.com") { 
    //execute script 
} 

없는 아주 멋진 :이 상황에서

<?php 
    $_SERVER['SERVER_ADDR'] = '127.0.0.1'; // or IP restricted 
    $_SERVER['HTTP_HOST'] == 'mydomain.com'; // Or TLD restricted 
    // AFTER, you do include(): 
    require_once('script_of_programmer.php'); 
?> 

는, 모든 스크립트가 모든 서버에서 실행 할 수 있습니다 ...

유일한 옵션은

관련 문제