#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:
Непонятный вопрос.
-
Если вы имеете в виду, что хотите ограничить доступ вашего скрипта ко всем. И доступен только специальным пользователям на основе их IP. Затем вы можете использовать
$_SERVER['REMOTE_ADDR']
для проверки IP пользователя. Однако вы должны знать, что в случаях, когда ваш пользователь находится за прокси, вам нужно будет проверитьX-Forwarded-For
HTTP заголовок, а затем проверить$_SERVER['REMOTE_ADDR']
. Лучшим решением было бы использовать брандмауэр на сервере, установивiptable
параметры. -
Если вы имеете в виду, что вы не хотите, чтобы ваш скрипт был доступен вообще для кого-либо, тогда поместите код снаружи
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