Ограничить выполнение только через localhost - PullRequest
0 голосов
/ 25 января 2012

Это может быть странным вопросом.У меня есть php-файл на общедоступном веб-сайте, где у меня есть доступ к серверу.На данный момент нам не нужно устанавливать задание Cron для выполнения этого файла.Однако мне нужно ограничить выполнение этого файла только через localhost.У меня нет точного представления о том, как мне это сделать.Есть ли способ определить, является ли запрос localhost или нет?Я имею в виду с PHP.Или мне нужно обрабатывать это с помощью настроек безопасности или брандмауэра сервера?

Ответы [ 2 ]

3 голосов
/ 25 января 2012

Полагаю, вы имеете в виду, что хотите иметь возможность выполнять скрипт только с сервера, а не через Интернет с другого хоста. У вас есть два варианта:

Вариант 1

переместите его из папки public_html. Нет причин, по которым вы не должны использовать эту опцию, если только что-то не мешает вам сделать это. В этом случае

Вариант 2:

Оберните весь код в следующую if инструкцию

if (php_sapi_name() == 'cli')
{
   //your code
}

С другой стороны,

if (php_sapi_name() != 'cli')
   die();

//your code

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

0 голосов
/ 23 декабря 2017

Вы можете проверить IP-адреса следующим образом:

if($_SERVER["REMOTE_ADDR"]!=$_SERVER["SERVER_ADDR"])
{ 
exit;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...