Przez gościa zwykle nie można go sfałszować. Ale podejrzewam, że chciałbyś wymusić na pewnej maszynie SERVER_NAME licencjonowanie skryptów, aby mogły być używane tylko przez określone domeny. W tym przypadku odpowiedź brzmi: tak, ta zmienna może być na pewno podrobiona.
Powód jest prosty, serwer ustawia tę wartość. W większości przypadków PHP będzie działało jako moduł Apache, ale czasami masz inne moduły Apache, czasami masz PHP działające w trybie CGI z NGINX lub IIS, czasami masz nawet PHP działające jako rozwidlenie CLI jako proces potomny przez niestandardowe -budowany serwer wdrożony w chmurze. Te serwery byłyby odpowiedzialne za ustawienie tej zmiennej.
Co więcej, zawsze jest ręczne przypisanie.
$_SERVER['SERVER_NAME'] = ... // this can go above all your scripts
Bez względu na to, co zawsze będzie takie samo ... Twój serwer. Nie serwer, z którego pochodzi żądanie. – sachleen