Мы используем следующую функцию для автоматического определения того, находимся ли мы на машине внутри или на работающем сервере, а затем выбираем соответствующие конфиги для различных компонентов:
function devIsLocal(){
$res=false;
$http_host=$_SERVER['HTTP_HOST'];
if($http_host=='localhost')$res=true;
if($http_host=='127.0.0.1')$res=true;
if(substr($http_host,-4)=='.lan')$res=true;
if(strpos($http_host, '.')===false)$res=true;
return($res);
}
Как видите, он опирается только на значение HTTP_HOST.
Конечно, если вы используете какой-то виртуальный хост локально, например example.com, функция будет обманута.
Есть ли другие способы обмануть функцию? и какие другие переменные / места мы могли бы посмотреть, чтобы определить, где мы находимся?