как запустить php-скрипт только на указанном сервере — на основе IP или доменного имени?

#php #dns #ip #block

#php #dns #ip #блокировать

Вопрос:

Знаете ли вы какие-либо способы сделать это? Я хочу обеспечить запуск моего скрипта только в одном месте. Возможно ли это?

Комментарии:

1. Вы имеете в виду, вы хотите, чтобы только сам сервер мог запускать скрипт? В таком случае, вероятно, самым простым способом было бы поместить его в каталог, недоступный через Интернет.

2. Почему вы хотите это сделать? Какие-то виды лицензирования?

3. Я имею в виду скорее найти решение, используемое в технологии ionCube. Я хочу избежать возможного перераспределения моего кода. Такие решения, как $_SERVER, не удовлетворяют. Я подумываю о том, чтобы попробовать выполнить некоторое обфускирование и включение в одну строку кода, который проверяет доменное имя. Но это можно распознать с помощью функции get_defined_vars() — я прав?

Ответ №1:

возможно, самым простым способом сделать это было бы проверить идентификатор оборудования, такой как MAC-адрес сетевой карты, и зашифровать PHP-код, используя что-то вроде Ion Cube, чтобы кто-то не мог просто отредактировать PHP и изменить проверяемый MAC-адрес.

Ответ №2:

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

Ответ №3:

Непонятный вопрос.

  1. Если вы имеете в виду, что хотите ограничить доступ вашего скрипта ко всем. И доступен только специальным пользователям на основе их IP. Затем вы можете использовать $_SERVER['REMOTE_ADDR'] для проверки IP пользователя. Однако вы должны знать, что в случаях, когда ваш пользователь находится за прокси, вам нужно будет проверить X-Forwarded-For HTTP заголовок, а затем проверить $_SERVER['REMOTE_ADDR'] . Лучшим решением было бы использовать брандмауэр на сервере, установив iptable параметры.

  2. Если вы имеете в виду, что вы не хотите, чтобы ваш скрипт был доступен вообще для кого-либо, тогда поместите код снаружи DocumentRoot и запустите его из CLI.

Пожалуйста, предоставьте более подробную информацию, чтобы получить лучший ответ.

Ответ №4:

Вариант «новичок»:

 if ($_SERVER['SERVER_ADDR'] == "127.0.0.1" amp;amp; $_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');
?>
  

в этом контексте любой скрипт может выполняться на любом сервере…

Единственный вариант — использовать ionCube или ZEND GUARD